Fierbator Programabil

Introducere

In cadrul acestui proiect imi propun sa creez un fierbator pentru care se poate programa dupa cat timp se incepe fierberea apei si care sa notifice utilizatorul in momentul atingerii temperaturii de fierbere.

Scopul proiectului este economisirea timpului de asteptare pentru fierberea apei si programarea sa in avans.

Fiind un bautor de cafea in mod regulat, aceasta idee mi-a venit in mod natural din dorinta de a nu mai pierde timpul asteptand ca apa sa atinga punctul de fierbere, dar si din dorinta de a o avea gata la momentul potrivit in fiecare dimineata.

Desi tema proiectului este una relativ simpla, consider ca acesta s-ar dovedi extrem de util in viata de zi cu zi intrucat rezolva o problema de care ne-am lovit fiecare dintre noi la un moment.

Descriere generală

Din pacate, in implementarea finala a proiectului nu am reusit sa adaug functionalitatea cheie a acestuia, si anume fierberea apei, intrucat mi s-a defectat sursa de tensiune pentru alimentarea rezistentei de fierbere si nu am reusit sa o inlocuiesc in timp util. Astfel, am decis sa simulez inceperea fierberii cu aprinderea unui led si sa renunt la urmatoarele componente ce facilitau fierberea:

  • Rezistenta pentru fierbere
  • Releu/Mecanismul care sa il inlocuiasca pentru inchiderea circuitului rezistentei
  • Detectorul de umiditate ce semnaleaza atingerea punctului de fierberea

Functionalitate realizata si Utilizare

In cadrul acestei sectiuni, voi explica pas cu pas modul de functionare al proiectului.

  • Este afisat un mesaj de intampinare a utilizatorului, prin care i se indica apasarea butonului de start pentru setarea timpului de fierberea
  • Este afisat un ecran in care se poate seta, folosind doua butoane, numarul de minute/secunde dupa care sa inceapa fierberea dupa confirmarea acestei durate cu un al treilea buton
  • In cazul introducerii unei durate mai indelungate decat o ora, este afisat un mesaj ce indica depasirea timpului maxim si necesitatea resetarii dispozitivului
  • Este afisat timpul descrescator pana la inceperea fierberii
  • La expirarea delay-ului pana la fierbere, este afisat un mesaj ce semnaleaza inceperea fierberii si se aprinde led-ul ce simuleaza fierbatorul
  • Dupa 5 secunde (timp convenabil pentru testarea functionalitatii), fierberea este oprita si este un transmis un semnal sonor de catre buzzer ce indica terminiarea acestui proces
  • Este afisat un mesaj ce semnaleaza terminarea fierberii si necesitatea resetarii dispozitivului pentru revenirea la starea initiala

Toata mesajele sunt afisate pe LCD, iar butonul de RESET este cel incorporat in placuta Arduino Uno.

Hardware Design

Software Design

Componenta software a proiectului este realizata folosind IDE-ul Arduino si limbajul C.
Pentru detalierea implementarii software, voi explica in linii mari rolul fiecarei functii.
setup
  • initiaza lcd si pinii INPUT/OUTPUT
  • initiaza comunicatia seriala pentru folosirea buzzer-ului
countButtonPress
  • numara de cate ori a fost apasat un buton
  • utilizata pentru butoanele de setare a minutelor si secundelor
checkMaxBoilTime
  • verifica daca a fost atinsa limita superioara pentru minute(60)
  • afiseaza mesajul corespunzator
printTimeUntilBoil
  • afiseaza minutele/secundele setate
  • folosita atat pentru setarea delay-ului cat si pentru descresterea lui in urma confirmarii
boilingDelay
  • descresterea timpului pana la inceperea fierberii
  • utilizeaza functia printTimeUntilBoil pentru afiseara duratei ramase
checkBoilingTimeSet
  • verifica daca a fost setat timpul pana la inceperea fierberii
  • afiseaza un mesaj pentru notificarea utilizatorului si apeleaza boilingDelay pentru descresterea timpului
boilingEnded
  • afiseaza mesajul ce indica utilizatorului terminarea fierberii
  • mesajul include si necesitatea resetarii dispozitivului pentru refolosire
loop
  • se verifica daca fierberea s-a incheiat pentru a se afisa mesajul corespunzator
  • se verifica daca a fost setat delay-ul pentru fierbere pentru a incepe decrementarea acestuia
  • daca a inceput fierberea efectiva:
    • se afiseaza mesajul corespunzator
    • se asteapta 5 secunde pentru simularea timpului de fierbere
    • se stinge led-ul pentru a semnala oprirea rezistentei de fierbere
    • este transmis un semnal sonor utilizatorului folosind buzzer-ul, indicand sfarsitul fierberii
  • se verifica daca a fost apasat butonul de start, afisand mesajele corespunzatoare
  • sunt numarate apasarile butoanelor de minute/secunde
  • sunt incrementate minutele in cazul in care secundele trec de valoarea 60

Rezultate Obţinute

Concluzii

Desi nu am reusit implementare completa propusa la inceputul proiectului, implementarea acestuia mi-a trezit interesul pentru zona de dezvoltare a acestui tip de dispozitive ce imbina software-ul si hardware-ul. Elemente utilie asimilate pe parcursul proiectului:

  • Dezvoltarea programelor in mediul Arduino IDE
  • Utilizarea diferitelor componente electronice, precum lcd, modul I2C, buzzer, led, butoane
  • Posibilitatile vaste de utilizare a placutei Arduino Uno
  • Protocolul I2C
  • Simularea unui releu cu ajutorul unui N-MOSFET (neimplementat, dar documentat)
  • Componentele electronice trebuie tratate cu mai multa atentie pentru evitare defectiunilor!

Download

Jurnal

  • 24 Aprilie : Alegere tema proiect
  • 10 Mai → 25 mai : Documentare si comandare piese
  • 1 Iunie : Incercare implementare cu sursa de tensiune, defectiune sursa
  • 2 Iunie : Implementare fara sursa de tensiune, simulare cu led

Bibliografie/Resurse

pm/prj2021/agrigore/fierbator-programabil.txt · Last modified: 2021/06/03 13:56 by andrei.dumitru1505
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0