This is an old revision of the document!
Acest proiect isi propune realizarea unui tuner pentru chitari electrice, electro-acustice si electro-clasice. Utilizatorul va avea nevoie doar de un cablu jack-jack pentru a conecta chitara la acordor. Pentru o experienta de utilizare usoara, el va avea la dispozitie 2 butoane de selectie (previous si next string), un ecran LCD, unde vor fi afisate coarda selectata si frecventa tinta, si un LED, care va indica daca coarda este acordata corespunzator.
Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html
Microcontrolerul Arduino va fi componenta principala a proiectului. Acesta va primi input de la chitara prin mufa jack, amplitudinea semnalului fiind marita cu ajutorul amplificatorului operational. Utilizatorul va trebui sa aleaga ce coarda vrea sa acordeze, folosind butoanele si urmarind mesajele de pe ecranul LCD, pentru a stabili frecventa de referinta a semnalului. In functie de cat de cat de dezacordata este coarda, LED-ul se va comporta astfel:
Se va folosi acordajul acordajul standard in Mi:
Flow si explicatii:
Lista piese:
Mediu de dezvoltare: PlatformIO (VSCode)
Surse folosite: Arduino-Frequency-Detection
Codul este structurat pe mai multe fisiere sursa, astfel incat sa exista o separare a componentelor. In mare, tuner-ul este compus din 2 parti software importante.
Input utilizator:
INT0
si INT1
. Ele modifica o variabila in care se tine minte ce frecventa de referinta se folosesteloop()
se scrie pe ecran, folosind biblioteca Adafruit_ST7735.h
pentru comunicarea prin SPI, ce frecventa (deci ce coarda) este selectata.Input chitara:
analogRead()
si s-a scazut rezolutia de la 1023 la 255ADCH
si apoi se calculeaza perioada si amplitudinea semnalului primit, care sunt salvate in variabile dedicateloop()
, daca amplitudinea semnalului este peste un threshold dat, atunci se va calcula frecventa si se va compara cu referinta. In functie de rezultatul comparatiei, led-ul RGB se va aprinde appropriately.
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.