This shows you the differences between two versions of the page.
pm:prj2021:apredescu:calendar_digital_cu_alarma [2021/05/06 22:40] alexandra.luca1611 created |
pm:prj2021:apredescu:calendar_digital_cu_alarma [2021/06/03 14:56] (current) alexandra.luca1611 [Download] |
||
---|---|---|---|
Line 19: | Line 19: | ||
- Arduino UNO | - Arduino UNO | ||
- | - Ecran LCD 1.8 SPI | + | - Ecran LCD 1.8 SPI ST7735s |
- | - Modul ceas in timp real | + | |
- Breadboard | - Breadboard | ||
- Fire | - Fire | ||
- Butoane | - Butoane | ||
- | - Rezistente | ||
- | - LED-uri | ||
- Buzzer | - Buzzer | ||
+ | === Schematic === | ||
+ | |||
+ | {{:pm:prj2021:apredescu:alexandraluca_schematic2.png?700|}} | ||
==== Software design ==== | ==== Software design ==== | ||
+ | |||
+ | * Pentru controlul ecranului LCD am folosit biblioteca Adafruit | ||
+ | * In functia de setup am afisat calendarul (luna, zilele saptamanii, zilele lunii). Tot aici am creat o animatie prin care zilele sunt inconjurate pe rand de dreptunghiuri galbene. Ziua curenta este inconjurata de un dreptunghi rosu. | ||
+ | * In bucla principala (loop) se afiseaza ora curenta (si folosesc un dreptunghi negru pentru a acoperi ora veche). Ora se preia folosind functia millis() si masurand cand au trecut cel putin 1000 de milisecunde de la ultima oara cand s-a updatat ora | ||
+ | * Daca secunda trece de 60 atunci se updateaza minutul, daca minutele trec de 60 se updateaza ora, daca ora trece de 24 se updateaza ziua. | ||
+ | * Buzzerul este folosit pentru a suna alarma (la ora 16:21:00). | ||
+ | * Pentru a forma melodia am folosit un array de note muzicale si un array de durate. Fiecare nota muzicala este cantata folosind tone(), dupa care se da delay pentru timpul de asteptare. | ||
+ | * Cu ajutorul a doua butoane se poate regla ceasul. Butonul galben creste minutul; butonul rosu creste ora; daca sunt apasate ambele in acelasi timp, atunci creste ziua curenta. | ||
==== Rezultate obtinute ==== | ==== Rezultate obtinute ==== | ||
+ | {{:pm:prj2021:apredescu:alexandraluca_rezultat.jpg?600|}} | ||
==== Concluzii ==== | ==== Concluzii ==== | ||
+ | Proiectul poate fi imbunatatit in continuare in urmatoarele moduri: | ||
+ | |||
+ | * Folosirea unui modul de ceas in timp real (RTC) pentru acuratete marita in masurarea orei | ||
+ | * Implementarea unui mod pentru reglarea alarmei | ||
+ | * Implementarea unui buton de snooze sau oprire a alarmei | ||
==== Download ==== | ==== Download ==== | ||
- | Documentația în format <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF</a></html> | + | * Documentația în format <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF</a></html> |
+ | * Link la <html><a href="https://github.com/alexandra-luca/arduino-calendar-alarm-clock">repository Github</a></html> | ||
+ | * Link la <html><a href="https://github.com/alexandra-luca/arduino-calendar-alarm-clock/blob/main/video.mp4?raw=true">video</a></html> | ||
==== Bibliografie ==== | ==== Bibliografie ==== | ||
- | https://ocw.cs.pub.ro/courses/pm | + | * https://ocw.cs.pub.ro/courses/pm - Documentatie PM |
+ | * https://www.electronics-lab.com/project/using-st7735-1-8-color-tft-display-arduino/ - Tutorial conectare display prin Adafruit | ||
+ | * http://roboprocodes.blogspot.com/2015/11/sketch-code-define-nb0-define-nc1.html - Tutorial melodie Stairway to Heaven folosind buzzerul | ||
+ | |||
+ | * https://github.com/adafruit/Adafruit-GFX-Library - Biblioteca Adafruit GFX | ||
+ | * https://github.com/adafruit/Adafruit_BusIO - Biblioteca Adafruit BusIO | ||
+ | * https://github.com/adafruit/Adafruit-ST7735-Library - Biblioteca Adafruit ST7735 |