This is an old revision of the document!
Modulele de Amplificator și de DC Offset au rolul de a aduce semnalul primit de la chitară între 0 și 5V și a-l centra în 2.5V pentru a putea fi citit de pinul A0 al plăcuței Arduino.
Listă de piese:
Am folosit mediul de dezvoltare Arduino IDE. Pentru afișarea pe ecranul LCD, am folosit biblioteca <LiquidCrystal.h>.
Pentru a calcula frecvența corzilor chitării, am folosit o întrerupere ADC: de fiecare dată când portul A0 al plăcuței Arduino primește o nouă valoare analog, se produce o întrerupere după algoritmul descris aici: https://www.instructables.com/Arduino-Frequency-Detection/.
Astfel, în rutina de întrerupere ADC, am ales o tensiune în limitele semnalului meu (2,5 V). Am contorizat evenimentele de prag în care unda a traversat acest nivel cu o pantă ascendentă. Dacă acest lucru s-a întâmplat de mai multe ori într-un ciclu, am ales ca evenimentul de prag cu cea mai mare pantă să fie începutul ciclului. Am folosit o variabilă numită „time” (incrementată la o rată de 38,5 kHz) pentru a măsura timpul dintre evenimentele de prag și am stocat valorile acesteia într-un array numit timer[]. De asemenea, am înregistrat panta la fiecare dintre evenimentele de prag într-un array numit slope[]. Apoi am comparat elementele timer[] și slope[] pentru a afla unde a fost o potrivire. Odată ce a fost găsită o potrivire, am adunat elementele timer[] pentru a determina durata ciclului și am trimis această valoare la o variabilă globală numită „period”. În funcția principală loop() folosesc valoarea perioadei pentru a calcula frecvența.
Această valoare este comparată apoi cu valorile de referință ale corzilor (în funcție de modul de acordare) pentru a determina ce coardă a fost atinsă și care este diferența de frecvență.
Printr-o altă întrerupere declanșată de apăsarea unui buton, stabilesc modul de acordare: Standard sau Drop D. Valorile frecvențelor pentru Standard Tuning sunt:
Coardă | Frecvență (Hz) |
---|---|
E | 82.4 |
A | 110 |
D | 146.8 |
G | 196 |
B | 246.9 |
e | 329.6 |
Diferența în Drop D Tuning constă în valoarea frecvenței corzii E, aceasta fiind de 73.4 Hz.
Pe ecranul LCD, se va afișa litera ce reprezintă coarda acordată (E, A, D, G, B sau e), litera ce reprezintă modul de acordare (S sau D) și un grafic ce va indica diferența față de frecvența de referință.
Tuner-ul are o acuratețe foarte ridicată, însă datorită zgomotului și a metodei alese pentru a-l evita (atingerea unei amplitudini minime pentru ca semnalul să fie procesat), corzile mai subțiri trebuie lovite mai tare pentru a fi interceptate.
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.