This shows you the differences between two versions of the page.
|
pm:prj2021:alazar:houseclock [2021/06/03 00:13] adrian.cojocaru1603 [Software Design] |
pm:prj2021:alazar:houseclock [2021/06/03 20:03] (current) adrian.cojocaru1603 [Software Design] |
||
|---|---|---|---|
| Line 17: | Line 17: | ||
| * BUZZER | * BUZZER | ||
| * Ecran LCD 16x2 | * Ecran LCD 16x2 | ||
| - | * Tastatura numerica 4*4 | + | * Butoane setare ora/alarma (LCD KEYPAD SHIELD) |
| - | * Butoane setare ora/alarma | + | |
| * Senzor temperatura si umiditate DHT11 | * Senzor temperatura si umiditate DHT11 | ||
| ==== Software Design ==== | ==== Software Design ==== | ||
| O librarie folosita pentru a beneficia de functii de scriere pe ecranul LCD este "LiquidCrystal.h" | O librarie folosita pentru a beneficia de functii de scriere pe ecranul LCD este "LiquidCrystal.h" | ||
| + | |||
| + | |||
| Pentru a incrementa secundele ceasului, folosesc intreruperi pe Timer-ul 1 al | Pentru a incrementa secundele ceasului, folosesc intreruperi pe Timer-ul 1 al | ||
| placutei Arduino, setand registrii corespunzatori in setup() pentru a obtine | placutei Arduino, setand registrii corespunzatori in setup() pentru a obtine | ||
| intrerupere la fiecare secunda. In rutina de intrerupere(ISR(TIMER1_COMPA_vect)), recalculez ora(minutele + secundele), | intrerupere la fiecare secunda. In rutina de intrerupere(ISR(TIMER1_COMPA_vect)), recalculez ora(minutele + secundele), | ||
| la fiecare secunda scursa. | la fiecare secunda scursa. | ||
| + | |||
| + | |||
| Functia set_alarm() seteaza, la alegerea utilizatorului(de pe butoanele up, down, left, right) o ora la care | Functia set_alarm() seteaza, la alegerea utilizatorului(de pe butoanele up, down, left, right) o ora la care | ||
| buzzerul conectat la Arduino va simula un sunet de alarma. | buzzerul conectat la Arduino va simula un sunet de alarma. | ||
| Functiile increase_hour/minutes, decrease_hour/minutes, raspund la apasari ale utilizatorului | Functiile increase_hour/minutes, decrease_hour/minutes, raspund la apasari ale utilizatorului | ||
| pe butoanele up, down, left, right dandu-i voie acestuia sa seteze o anumita ora pe ceas. | pe butoanele up, down, left, right dandu-i voie acestuia sa seteze o anumita ora pe ceas. | ||
| + | |||
| + | |||
| La pinul A1 este conectat seonzorul de temperatura, de la care iau valoarea citita(analog) si o transform | La pinul A1 este conectat seonzorul de temperatura, de la care iau valoarea citita(analog) si o transform | ||
| conform datasheet-ului in grade Celsius. | conform datasheet-ului in grade Celsius. | ||
| + | |||
| + | |||
| La pinul A2 este conectat buzzer-ul care este pus sa produca o alarma ce dureaza 5 secunde(delay) atunci | La pinul A2 este conectat buzzer-ul care este pus sa produca o alarma ce dureaza 5 secunde(delay) atunci | ||
| cand ora curenta(ora si minut) coincide cu ora alarmei. | cand ora curenta(ora si minut) coincide cu ora alarmei. | ||
| + | |||
| + | In functia loop, afisez mereu ora si temperatura(si un mesaj care informeaza utilizatorul ca pentru a seta o alarma | ||
| + | trebuia sa apese butonul SELECT). | ||
| + | In plus, verific daca nu cumva un buton a fost apasat, si ce buton(voltajul de pe A0 imi indica ce buton s-a apasat). | ||
| + | Apoi, in functie de ce buton e apasat, am descris mai sus functiile ce trateaza fiecare buton. | ||
| + | Dupa ce este setata alarma(in cazul in care utilizatorul a apasat SELECT), este afisat un mesaj de informare si anume | ||
| + | ca trebuie apasat din nou SELECT pentru revenirea la ecranul principal. | ||
| + | |||
| + | Am atasat mai jos sketc-ul ce contine codul. | ||
| + | {{:pm:prj2021:alazar:proiect_cojocaru_335ca.zip|}} | ||
| + | |||
| + | {{:pm:prj2021:alazar:schema_houseclock.png?200|}} | ||
| ==== Rezultate obtinute==== | ==== Rezultate obtinute==== | ||
| + | La link-ul urmator se poate vedea un demo cu functionalitatea proiectutlui | ||
| + | |||
| + | [[https://www.youtube.com/watch?v=CQ7Ttky4qeI]] | ||
| ==== Concluzii==== | ==== Concluzii==== | ||
| - | ==== Download==== | + | |
| ==== Jurnal==== | ==== Jurnal==== | ||
| + | 03.05.2021 Initializare pagina wiki, descriere sumara proiect | ||
| + | |||
| + | 03.06.2021 Finalizare proiect, software design + demo | ||
| ==== Bibliografie/Resurse ==== | ==== Bibliografie/Resurse ==== | ||
| [[https://ocw.cs.pub.ro/courses/pm/prj2021/alazar/houseclock?do=export_pdf|PDF]] | [[https://ocw.cs.pub.ro/courses/pm/prj2021/alazar/houseclock?do=export_pdf|PDF]] | ||