Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:agrigore:fierbator-programabil [2021/04/25 22:01]
andrei.dumitru1505 created
pm:prj2021:agrigore:fierbator-programabil [2021/06/03 13:56] (current)
andrei.dumitru1505
Line 13: Line 13:
 ===== Descriere generală ===== ===== Descriere generală =====
  
-{{:​pm:​prj2021:​agrigore:​diagramablockfierbator.png?​400|}}+{{:​pm:​prj2021:​agrigore:​diagramablockfierbator.png?​500|}} 
 +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 ===== ===== Hardware Design =====
 +{{:​pm:​prj2021:​agrigore:​schemaelectronicapm.png?​600|}}
 +
 +
 + ​Componente utilizate:
 +
 +  * Arduino Uno
 +     * https://​ardushop.ro/​ro/​home/​29-placa-de-dezvoltare-uno-r3.html
 +     * https://​store.arduino.cc/​arduino-uno-rev3
 +     * Datasheet microcontroller:​ https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf
  
-  ​* Arduino +  * Releu (nefolosit) 
-  ​* Releu +  * Rezistenta fierbere apa (nefolosit)
-  * Rezistenta fierbere apa+
   * Fire   * Fire
-  * Sursa de tensiune+  * Sursa de tensiune ​(nefolosit)
   * Butoane   * Butoane
 +     * https://​www.optimusdigital.ro/​ro/​butoane-i-comutatoare/​1119-buton-6x6x6.html
 +     * Datasheet http://​www.farnell.com/​datasheets/​2343587.pdf
   * Afisor LCD   * Afisor LCD
-  ​* Detector umiditate+     * https://​cleste.ro/​ecran-lcd-2004-cu-i2c-albastru-4174.html 
 +     * Datasheet LCD: https://​www.beta-estore.com/​download/​rk/​RK-10290_410.pdf 
 +     * Datasheet modul I2C I/O expander: https://​html.alldatasheet.com/​html-pdf/​18215/​PHILIPS/​PCF8574T/​4027/​16/​PCF8574T.html 
 +  ​* Detector umiditate ​(nefolosit)
   * Buzzer   * Buzzer
 +     * https://​ardushop.ro/​ro/​electronica/​194-buzzer.html
 +     * Datasheet: http://​www.farnell.com/​datasheets/​2171929.pdf
 +  * Rezistente 1K
 +     * https://​ardushop.ro/​ro/​electronica/​211-rezistenta-14w-1-buc.html#/​89-valoare_rezistenta-1k
 +     * Datasheet: http://​www.farnell.com/​datasheets/​1716725.pdf?​_ga=2.43716581.132370299.1498698481-246720399.1496759099
 +  * LED semnalizare fierbere
 +     * https://​www.optimusdigital.ro/​ro/​optoelectronice-led-uri/​696-led-rou-de-3-mm-cu-lentile-difuze.html
 +     * Datasheet: https://​static.rapidonline.com/​pdf/​56-0740e.pdf ​
 ===== Software 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 ===== ===== Rezultate Obţinute =====
 +{{:​pm:​prj2021:​agrigore:​proiectfinal.jpeg?​500|}}
 +
 +  * Demo cu durata pana la fierbere mai mare de un minut:
 +    * https://​www.youtube.com/​watch?​v=IB52FuCibE4
 +  * Demo cu durata pana la fierbere mai mica de un minut:
 +    * https://​www.youtube.com/​watch?​v=nKQAhG6EOKM
 +  * Demo eroare - timp pana la fierbere mai mare de o ora:
 +    * https://​www.youtube.com/​watch?​v=z2_UJ74hTKA
  
 ===== Concluzii ===== ===== 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 ===== ===== Download =====
 +{{:​pm:​prj2021:​agrigore:​proiectpm_dumitruandrei_332ca.zip|}}
  
-===== Jurnal ===== 
  
 +===== 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 ===== ===== Bibliografie/​Resurse =====
 Pdf: https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​agrigore/​fierbator-programabil?​do=export_pdf Pdf: https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​agrigore/​fierbator-programabil?​do=export_pdf
 +
 +https://​www.arduino.cc/​en/​tutorial/​pushbutton
 +
 +https://​create.arduino.cc/​projecthub/​rowan07/​make-a-simple-led-circuit-ce8308
 +
 +http://​electronics.flosscience.com/​Home_LE/​Arduino-Lessons/​counting-presses
pm/prj2021/agrigore/fierbator-programabil.1619377261.txt.gz · Last modified: 2021/04/25 22:01 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