Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul presupune realizarea unui pian cu mai multe functionalitati:
Scopul acestui proiect este de a invata sa canti la pian, dar in acelasi timp sa ai posibilitatea sa schimbi sunetul de pian cu un alt instrument. Acest lucru ar ajuta, deoarece nu e nevoie doar sa stii sa canti la pian pentru a reusi sa canti si la celelalte instrumente.
Ideea mi-a venit din dorinta de a vrea sa stiu sa cant la un instrument.
Ecranul lcd va prelua date din program, in legatura cu volumul, octava si instrumentul. Acesta se va actualiza in momentul in care se apasa pe buntoanele de schimbare a uneia din cele 3 informatii afisate.
La apasarea unei clape a claviaturii, microcontroller-ul va trimite nota mapata pe clapa respectiva catre difuzor, pentru a reda sunetul.
Lista de piese:
Pentru afisaj folosesc un LCD cu un controller Hitachi 44780.
Difuzorul este de 8 ohmi.
Pentru butoanele de control, cat si cele ale claviaturii nu a mai trebuit sa pun rezistente, deoarece microcontroller-ul are rezistente de pull-up integrate.
Ca mediu de dezvoltare am folosit Clion ca IDE, iar hex-ul l-am generat cu un Makefile. Pentru librarii am folosit:
Pentru functionarea pianului am folosit 2 timere:
Timer 0 verifica la fiecare 10 ms printr-o intrerupere, daca s-a apasat un buton de pe claviatura
Timer 1 il folosesc pentru a genera sunet prin pwm la speaker
Functii implementate sunt cateva functii ajutatoare:
Timer 0 , mod CTC , prescaler 1024 cu intreruperile activare Timer 1 , pwm activat, cu prescaler 1024
In momentul de fata pianul are implementate:
Inca nu am reusit sa modific sunetul pe care il scoate, pentru a simula mai multe instrumente
A fost un proiect interesant , in care am invatat sa lucrez mai bine si sa inteleg timerele si pwm.
De asemenea, am descoperit ca imi place sa programez placute si sa vad cum obtin anumite rezultate
Arhiva cu codul sursa : denis_adelin.firu_pian.zip
Eagle: denis_adelin.firu_sch.sch