This shows you the differences between two versions of the page.
pm:prj2023:ndrogeanu:boxargb [2023/05/28 15:41] george.tudose2504 [Bibliografie/Resurse] |
pm:prj2023:ndrogeanu:boxargb [2023/05/29 19:36] (current) george.tudose2504 [Software Design] |
||
---|---|---|---|
Line 50: | Line 50: | ||
* //__SoftwareSerial.h__ și __DFRobotDFPlayerMini.h__// pentru comunicarea cu modulul DFPlayer Mini | * //__SoftwareSerial.h__ și __DFRobotDFPlayerMini.h__// pentru comunicarea cu modulul DFPlayer Mini | ||
* //__U8g2lib.h__ și __Wire.h__// pentru realizarea interfeței pe ecranul OLED | * //__U8g2lib.h__ și __Wire.h__// pentru realizarea interfeței pe ecranul OLED | ||
+ | * //__EEPROM.h__// pentru a salva valorile variabilelor care gestioneaza volumul, EQ și melodia curentă | ||
</note> | </note> | ||
Line 61: | Line 62: | ||
* **refresh()**: Această funcție activează rederesanrea ecranului corect la un interval de 1min. | * **refresh()**: Această funcție activează rederesanrea ecranului corect la un interval de 1min. | ||
* Butoanele de next și prev sunt controlate prin întruperile **INT1 și INT2**. | * Butoanele de next și prev sunt controlate prin întruperile **INT1 și INT2**. | ||
- | * Butonul de select este controlat în funcția de **loop()**. | + | * Butonul de select este controlat în funcția de **loop()**. (SoftwareSerial folosit de DFPlayer Mini nu permite utilizarea întreruperilor PCInt) |
** Pentru controlul benzii LED** | ** Pentru controlul benzii LED** | ||
Line 68: | Line 69: | ||
=== Logica Programului === | === Logica Programului === | ||
* Se verifcă dacă ecranul are nevoie de un refresh. | * Se verifcă dacă ecranul are nevoie de un refresh. | ||
- | * Se citește valoarea de pe senzorul conectat la A0, și in funcție de valoare citită se alege o culoarea corespunzătoare. Pinii 9, 10, 11 (PWN) controlează culoarea benzii. | + | * Se verifică starea butonului de select. În caz de apăsarea, în funcție de meniul curent și starea curentă în interfață se realizeaza ori o modificare în interfață ori/și o comandă către modulul DFPlayer mini. |
- | * Se verifică starea butonului de select. În caz de apăsarea, în funcție de meniul curent și starea curentă în interfață se realizeaza ori o modificare în interfață ori o modificare a modului DFPlayer mini. | + | |
* În cazul în care s-a apăsat pe butonul select, se actualizează ecranul afișat pe OLED. | * În cazul în care s-a apăsat pe butonul select, se actualizează ecranul afișat pe OLED. | ||
+ | * Se dezactivează SoftwareSerial stream, deoarece implementarea sa nu este compatibilă cu analogWrite și analogRead | ||
+ | * Se citește valoarea de pe senzorul conectat la A0, și in funcție de valoare citită se alege o culoarea corespunzătoare. Pinii 9, 10, 11 (PWN) controlează culoarea benzii. | ||
+ | * Se reactivează SoftwareSerial Stream fără a reseta modulul Mini Player. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
**Rezultate obținute după etapa Hardware** | **Rezultate obținute după etapa Hardware** | ||
- | |||
| {{:pm:prj2023:ndrogeanu:hardware_rgb_1_.jpg?350|}} | {{:pm:prj2023:ndrogeanu:hardware_rgb_2_.jpg?350|}} | | | {{:pm:prj2023:ndrogeanu:hardware_rgb_1_.jpg?350|}} | {{:pm:prj2023:ndrogeanu:hardware_rgb_2_.jpg?350|}} | | ||
| {{:pm:prj2023:ndrogeanu:hardware_rgb_3_.jpg?350|}} | {{:pm:prj2023:ndrogeanu:hardware_rgb_4_.jpg?350|}} | | | {{:pm:prj2023:ndrogeanu:hardware_rgb_3_.jpg?350|}} | {{:pm:prj2023:ndrogeanu:hardware_rgb_4_.jpg?350|}} | | ||
- | ===== Concluzii ===== | ||
+ | **Rezultate obținute după etapa Software (Ecranul OLED)** | ||
+ | | {{:pm:prj2023:ndrogeanu:rgb_ecran_oled_mp3_1_.jpg?200|}} | {{:pm:prj2023:ndrogeanu:rgb_ecran_oled_mp3_2_.jpg?200|}} | {{ :pm:prj2023:ndrogeanu:rgb_ecran_oled_mp3_3_.jpg?200|}} | | ||
+ | |||
+ | **Demo Funcționalitate Proiect** | ||
+ | https://www.youtube.com/watch?v=CzFys5a_zP0 | ||
+ | |||
+ | |||
+ | ===== Concluzii ===== | ||
+ | * Codul prezentat demonstrează utilizarea bibliotecilor și funcțiilor specifice Arduino pentru a controla diverse componente hardware, cum ar fi senzorul analogic, ecranul OLED, difuzorul și LED-urile RGB. | ||
+ | * Bibliotecile externe extind capacitățile Arduino, permițând controlul dispozitivelor și senzorilor specializați, precum și redarea fișierelor audio de pe cardul SD. | ||
+ | * Încorporarea unui vizualizator RGB în cod demonstrează modul în care se poate controla culoarea LED-urilor în funcție de valoarea citită de senzorul analogic. Acest exemplu ilustrează modul în care Arduino poate fi folosit pentru a crea efecte de iluminare personalizate și reacții la schimbările de mediu. | ||
+ | * Utilizarea unui ecran OLED și a unui sistem de meniu permite interacțiunea cu utilizatorul, ceea ce lustrează modul în care intefața cu utilizatorul poate fi implementată în proiectele Arduino pentru a oferi control și flexibilitate utilizatorului. | ||
===== Download ===== | ===== Download ===== | ||
<note warning> | <note warning> | ||
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | *Cod Arhivă {{:pm:prj2023:ndrogeanu:cod_rgb_mp3.zip|}} |
- | + | ||
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | |
</note> | </note> | ||
Line 96: | Line 107: | ||
- 07.05.2023 Completare Milestone 1 | - 07.05.2023 Completare Milestone 1 | ||
- 21.05.2023 Completare Milestone 2 | - 21.05.2023 Completare Milestone 2 | ||
+ | - 28.05.2023 Completare Milestone 3 | ||
</note> | </note> | ||