This shows you the differences between two versions of the page.
pm:prj2023:iotelea:musicpad [2023/05/28 21:21] raul_teodor.bocanu [Bibliografie/Resurse] |
pm:prj2023:iotelea:musicpad [2023/05/29 20:10] (current) raul_teodor.bocanu [Rezultate Obţinute] |
||
---|---|---|---|
Line 51: | Line 51: | ||
De asemenea, am setat un timer folosind registrii. Timer-ul este pornit prin apelarea functiei **startTimer()**, functie apelata odata ce unul din cele sase butoane este apasat, si aprinde LED-ul verde care, cat timp este aprins, permite redarea celor sase sound-uri. Odata ce timpul a expirat (18 secunde), se va aprinde LED-ul rosu timp de 5 secunde. Aprinderea LED-ului rosu permite redarea/resetarea secventei, sau, in cazul in care nu se doreste niciuna din cele doua optiuni, dupa ce acesta se stinge, se poate relua mixing-ul sound-urilor care va deschide un nou ciclu, pornind un nou timer. Timer-ul se foloseste de o intrerupere in care se intra odata la 0.5 secunde, asa ca am contorizat numarul de intrari in intrerupere pentru a putea verifica timpii doriti. | De asemenea, am setat un timer folosind registrii. Timer-ul este pornit prin apelarea functiei **startTimer()**, functie apelata odata ce unul din cele sase butoane este apasat, si aprinde LED-ul verde care, cat timp este aprins, permite redarea celor sase sound-uri. Odata ce timpul a expirat (18 secunde), se va aprinde LED-ul rosu timp de 5 secunde. Aprinderea LED-ului rosu permite redarea/resetarea secventei, sau, in cazul in care nu se doreste niciuna din cele doua optiuni, dupa ce acesta se stinge, se poate relua mixing-ul sound-urilor care va deschide un nou ciclu, pornind un nou timer. Timer-ul se foloseste de o intrerupere in care se intra odata la 0.5 secunde, asa ca am contorizat numarul de intrari in intrerupere pentru a putea verifica timpii doriti. | ||
- | In functia **setup()**, declar modul de folosire al piniilor (INPUT/OUTPUT), pornesc interfata seriala si LCD-ul, afisand un mesaj de inceput. In plus, se apeleaza trei functii auxiliare de setup pentru setarea registrilor corespunzatori intreruperilor si timer-ului si calculul specific fiecarui sound, mentionat la inceputul sectiunii. Pentru LCD am folosit libraria **LiquidCrystal_I2C.h**. | + | In functia **setup()**, declar modul de folosire al piniilor (INPUT/OUTPUT), pornesc interfata seriala si LCD-ul, afisand un mesaj de inceput. In plus, se apeleaza trei functii auxiliare de setup pentru setarea registrilor corespunzatori intreruperilor si timer-ului si calculul specific fiecarui sound, mentionat la inceputul sectiunii. Pentru LCD am folosit libraria **LiquidCrystal_I2C.h**, astfel comunicand I2C cu acesta. |
In functia **loop()**, verific care dintre cele trei functionalitati a fost folosita: "Play", "Reset", sau unul din cele 6 butoane pentru sound-uri. | In functia **loop()**, verific care dintre cele trei functionalitati a fost folosita: "Play", "Reset", sau unul din cele 6 butoane pentru sound-uri. | ||
Line 63: | Line 63: | ||
{{ :pm:prj2023:iotelea:musicpad_ex1.jpg?400 |}} {{ :pm:prj2023:iotelea:musicpad_ex2.jpg?400 |}} {{ :pm:prj2023:iotelea:musicpad_ex3.jpg?400 |}} {{ :pm:prj2023:iotelea:musicpad_ex4.jpg?400 |}} | {{ :pm:prj2023:iotelea:musicpad_ex1.jpg?400 |}} {{ :pm:prj2023:iotelea:musicpad_ex2.jpg?400 |}} {{ :pm:prj2023:iotelea:musicpad_ex3.jpg?400 |}} {{ :pm:prj2023:iotelea:musicpad_ex4.jpg?400 |}} | ||
+ | |||
+ | [[https://drive.google.com/file/d/14OhikOYIM5vypfy0tHz2h-RwUwbI8oyG/view|Demo1]] | ||
+ | |||
+ | [[https://drive.google.com/file/d/1H-B3WkImNg7Ag_2iyvDFiP4P9MbvkPZs/view|Demo2]] | ||