Differences

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

Link to this comparison view

pm:prj2025:rnedelcu:bianca.scirtocea [2025/05/20 16:14]
bianca.scirtocea old revision restored (2025/05/20 09:55)
pm:prj2025:rnedelcu:bianca.scirtocea [2025/05/27 22:53] (current)
bianca.scirtocea [Hardware Design]
Line 87: Line 87:
  
  
-===== Software Design =====+**Proiectul cu tot cu carcasa**
  
 +{{:​pm:​prj2025:​rnedelcu:​b.jpeg?​300|}}
  
-<note tip> + 
-Descrierea codului aplicaţiei (firmware):​ +===== Software Design =====
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) +
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) +
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate +
-</​note>​+
  
 **Mediu de dezvoltare utilizat** **Mediu de dezvoltare utilizat**
Line 108: Line 104:
   - DHT.h - Pentru lucrul cu senzorul DHT22 (temperatură și umiditate).   - DHT.h - Pentru lucrul cu senzorul DHT22 (temperatură și umiditate).
  
-****Algoritmi și structuri implementate** +**Algoritmi și structuri implementate** 
- -** Afișare oră, dată, temperatură **+ 
 +  ​ ** Afișare oră, dată, temperatură **
       - Se utilizează modulul RTC (rtc.now()). ​           - Se utilizează modulul RTC (rtc.now()). ​    
       - Se afișează în format 12h sau 24h, configurabil.       - Se afișează în format 12h sau 24h, configurabil.
       - Afișare temperatură obținută de la DHT22.       - Afișare temperatură obținută de la DHT22.
- - ** Moduri de operare prin buton multifuncțional (buttonModeAlarmPin) ** - Toggle între moduri:+  ​ ** Moduri de operare prin buton multifuncțional (buttonModeAlarmPin) ** - Toggle între moduri:
       - Modul normal ​   ​       - Modul normal ​   ​
       - Modul de setare alarmă       - Modul de setare alarmă
       - Modul de setare dată       - Modul de setare dată
       - Comutare între 12h și 24h       - Comutare între 12h și 24h
- +  ​ ** Setarea orei și alarmei cu 3 butoane separate:**
- - ** Setarea orei și alarmei cu 3 butoane separate:​** ​- Toggle între moduri:+
       - buttonHourPin – modifică ora  ​       - buttonHourPin – modifică ora  ​
       - buttonMinutePin – modifică minutul       - buttonMinutePin – modifică minutul
       - buttonSecondPin – modifică secunda       - buttonSecondPin – modifică secunda
- +  ​- ** Verificare alarmă (checkAlarm())**
- - **  Verificare alarmă (checkAlarm())**+
       - Compară ora actuală cu valorile setate. ​       - Compară ora actuală cu valorile setate. ​
       - Dacă sunt egale și alarma este activată → se pornește o melodie și un LED.       - Dacă sunt egale și alarma este activată → se pornește o melodie și un LED.
-      - buttonSecondPin – modifică secunda +  ​- ** Alarma**
-- **  Alarma**+
       - Redă o melodie aleatorie din 3 variante (Twinkle Star, Happy Birthday, Jingle Bells). ​       - Redă o melodie aleatorie din 3 variante (Twinkle Star, Happy Birthday, Jingle Bells). ​
       - Se folosește tone() pe pinul buzzer.       - Se folosește tone() pe pinul buzzer.
       - LED-ul pentru alarmă clipește sincron cu notele.       - LED-ul pentru alarmă clipește sincron cu notele.
       - Se poate opri manual cu un buton.       - Se poate opri manual cu un buton.
 +  - ** Setarea datei**
 +    * Se pot incrementa ziua, luna și anul, ținând cont de numărul de zile în lună și anii bisecți.
 +  - ** Anti-rebound pentru butoane**
 +     * Se folosește un algoritm simplu de debounce bazat pe millis() și un delay de 200ms.
  
-**  *  Setarea datei** 
-Se pot incrementa ziua, luna și anul, ținând cont de numărul de zile în lună și anii bisecți. 
  
-**  *  ​Anti-rebound pentru butoane*+ 
-Se folosește un algoritm simplu ​de debounce bazat pe millis() și un delay de 200ms.+ 
 +**STRUCTURA GENERALĂ A CODULUI** 
 + 
 +Firmware-ul este structurat astfel: 
 +  ​* ​Inițializare componente hardware și variabile globale 
 +  ​* ​Loop principal (loop()): gestionează modurile de funcționare 
 +  * Funcții ​de afișare ​(LCD) 
 +  * Funcții pentru setarea timpului/​datei/​alarmei 
 +  * Funcții pentru alarmă (sunet ​și LED) 
 +  * Funcții auxiliare (conversii, formate, ani bisecți etc.)
  
  
Line 144: Line 149:
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +În urma implementării proiectului, am obținut un sistem funcțional care îndeplinește următoarele cerințe: 
-Care au fost rezultatele obţinute în urma realizării proiectului ​vostru+ 
-</note>+🔹 Afișarea corectă a orei, datei și temperaturii pe un ecran LCD 16x2 cu interfață I2C; 
 + 
 +🔹 Comutare între format 12h și 24h pentru ora afișată;​ 
 + 
 +🔹 Setare manuală a datei și a alarmei folosind 4 butoane; 
 + 
 +🔹 Alarmă activă cu melodii aleatorii redată printr-un buzzer și semnalizată vizual printr-un LED; 
 + 
 +🔹 Funcție de oprire a alarmei prin apăsarea unui buton dedicat; 
 + 
 +🔹 Feedback vizual pe ecran pentru fiecare mod de funcționare,​ inclusiv modul de setare a alarmei și datei; 
 + 
 +🔹 Implementarea corectă a debounce-ului software pentru a preveni multiple declanșări false ale butoanelor;​ 
 + 
 +🔹 Trecerea automată între moduri (afișare, setare alarmă, setare dată) printr-un buton multifuncțional
 + 
 + 
 + 
 +Link videoclip youtube: 
 + 
 + ​https:​//​youtube.com/​shorts/​8U7rqjtlfug?​si=eXz-076XvNCoucfd 
 + 
 +(In cadrul acestui videoclip, proiectul nu se afla la varianta lui finala, intre timp am modificat modalitatea de a suna a buzzerului. I-am adăugat acestuia posibilitatea de a suna cu una din trei melodii alese de mine pe frecvente, frecvente care se transmit și către led astfel încât să clipească concomitent cu ritmul melodiei. ) 
 + 
  
 ===== Concluzii ===== ===== Concluzii =====
Line 160: Line 189:
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip> +🔹 Configurare inițială 
-Puteți avea și o secțiune de jurnal ​în care să poată urmări asistentul de proiect progresul proiectului. +Am început cu conectarea componentelor principale: modulul RTC DS3231, senzorul de temperatură DHT22, LCD-ul I2C și butoanele. Am întâmpinat dificultățîn conectarea firelor pe breadboard – unele jumpere nu făceau contact corect, iar alimentarea era instabilă. A fost nevoie să schimb mai multe fire pentru a obține conexiuni stabile.
-</​note>​+
  
-===== Bibliografie/​Resurse =====+🔹 Probleme hardware neașteptate 
 +Am ars un LED (care semnala activarea alarmei) deoarece l-am conectat fără rezistență de limitare. A fost o lecție bună privind protejarea componentelor și calculul corect al curentului. Am înlocuit componenta și am inclus un rezistor de 220Ω.
  
-<​note>​ +🔹 Debugging RTC 
-Listă cu documentedatasheet-uriresurse Internet folositeeventual grupate pe **Resurse Software** ş**Resurse Hardware**. +Inițial, ora nu se seta corect. După mai multe încercări de a regla ora din codam descoperit că bateria de backup de pe modulul RTC era descărcată. După ce am înlocuit-omodulul a început să rețină corect ora și datachiar șdupă resetări.
-</​note>​+
  
-<​html><​class="media mediafile mf_pdf"​ href="?do=export_pdf">​Export to PDF</a></​html>​+🔹 Implementare alarmă și testarea sunetului 
 +Am integrat partea de alarmă și redare melodii. A fost o provocare sincronizarea buzzerului cu LED-ul și testarea fără ​deranja vecinii. De asemenea, m-am asigurat că oprirea alarmei funcționează fiabil – adăugând debounce corect pentru buton. 
 + 
 +🔹 Finalizare și testare completă 
 +Am testat toate scenariile: schimbarea orei, comutare 12h/24h, afișare temperatură,​ setarea și declanșarea alarmei. Toate funcțiile au fost verificate și funcționează stabil. Am făcut și un mic stres-test, simulând resetări și reporniri pentru a verifica persistența funcționării RTC-ului. 
 +===== Bibliografie/Resurse =====
  
 +  * https://​docs.arduino.cc/​resources/​datasheets/​A000066-datasheet.pdf
 +  * https://​docs.arduino.cc/​hardware/​uno-rev3/​
 +  * https://​github.com/​adafruit/​RTClib
 +  * https://​docs.arduino.cc/​libraries/​liquidcrystal-i2c/​
 +  * https://​github.com/​adafruit/​DHT-sensor-library
 +  * https://​projecthub.arduino.cc/​tmekinyan/​playing-popular-songs-with-arduino-and-a-buzzer-546f4a
pm/prj2025/rnedelcu/bianca.scirtocea.1747746868.txt.gz · Last modified: 2025/05/20 16:14 by bianca.scirtocea
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