This shows you the differences between two versions of the page.
pm:prj2021:alazar:houseclock [2021/05/01 16:14] adrian.cojocaru1603 [Descriere generală] |
pm:prj2021:alazar:houseclock [2021/06/03 20:03] (current) adrian.cojocaru1603 [Software Design] |
||
---|---|---|---|
Line 4: | Line 4: | ||
==== Introducere ==== | ==== Introducere ==== | ||
- | Proiectul simuleaza o reprezentare de ceas cu uz casnic, afisand ora, data, temperatura din camera si putand fi programata | + | Proiectul simuleaza o reprezentare de ceas cu uz casnic, afisand ora, temperatura din camera si putand fi programata |
o alarma pe o anumita ora in urmatoarele 24h. | o alarma pe o anumita ora in urmatoarele 24h. | ||
==== Descriere generală ==== | ==== Descriere generală ==== | ||
- | La arduino va fi conectat prin Breadboard un ecran LCD pe care sunt afisate pe randuri diferite, ora, data, temperatura. De asemenea | + | La arduino va fi conectat prin Breadboard un ecran LCD pe care sunt afisate pe randuri diferite, ora, temperatura. De asemenea |
print intermediul unui buton se va putea seta o alarma folosind un keypad pe care este introdusa ora la care se doreste alarma. Sunetul | print intermediul unui buton se va putea seta o alarma folosind un keypad pe care este introdusa ora la care se doreste alarma. Sunetul | ||
alarmei va fi simulat printr-un buzzer conectat, de asemenea la breadboard. La fel si senzorii pentru temperatura{{:pm:prj2021:alazar:output-onlinepngtools_1_.png?direct |}} | alarmei va fi simulat printr-un buzzer conectat, de asemenea la breadboard. La fel si senzorii pentru temperatura{{:pm:prj2021:alazar:output-onlinepngtools_1_.png?direct |}} | ||
+ | |||
+ | ==== Hardware Design ==== | ||
+ | * Arduino UNO | ||
+ | * BUZZER | ||
+ | * Ecran LCD 16x2 | ||
+ | * Butoane setare ora/alarma (LCD KEYPAD SHIELD) | ||
+ | * Senzor temperatura si umiditate DHT11 | ||
+ | |||
+ | ==== Software Design ==== | ||
+ | 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 | ||
+ | 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), | ||
+ | la fiecare secunda scursa. | ||
+ | |||
+ | |||
+ | 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. | ||
+ | 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. | ||
+ | |||
+ | |||
+ | La pinul A1 este conectat seonzorul de temperatura, de la care iau valoarea citita(analog) si o transform | ||
+ | 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 | ||
+ | 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==== | ||
+ | La link-ul urmator se poate vedea un demo cu functionalitatea proiectutlui | ||
+ | |||
+ | [[https://www.youtube.com/watch?v=CQ7Ttky4qeI]] | ||
+ | ==== Concluzii==== | ||
+ | |||
+ | ==== Jurnal==== | ||
+ | 03.05.2021 Initializare pagina wiki, descriere sumara proiect | ||
+ | |||
+ | 03.06.2021 Finalizare proiect, software design + demo | ||
+ | ==== Bibliografie/Resurse ==== | ||
+ | [[https://ocw.cs.pub.ro/courses/pm/prj2021/alazar/houseclock?do=export_pdf|PDF]] |