Autorul poate fi contactat la adresa: Login pentru adresa
Asa cum ii spune si titlul, proiectul va consta in realizarea unei chitare ale carei corzi vor fi definite de raze laser.Astfel voi avea 6 lasere care vor emite constant(pe baterii) si 6 receptori care vor citi si vor anunta microcontrollerul atunci cand o raza va fi intrerupta.Microcontrollerul va trimite date la difuzorul chitarei, care in momentul primirii datelor va emite sunetul respectiv pentru o perioada scurta de timp.
Motivatie: Am hotarat sa realizez acest proiect deoarece o chitara-laser mi se pare un obiect super interesant. Chitara in sine este un instrument important, una cu corzi-laser e si mai interesanta.
Folosesc rezistente de 1k pentru a realiza divizoarele de tensiune. Photo-rezistentele se comporta astfel: cu cat primesc mai multa lumina, rezistenta lor scade.Astfel folosind un divizor de tensiune vom putea citi tensiunea de pe photo-rezistenta si determina daca raza a fost intrerupta. Laserele sunt alimentate de la bateriile proprii (3*1.5V) deoarece in urma “desfacerii” unui laser am constatat ca ar fi destul de greu sa il leg la microcontroller fara sa il stric, photodioda care emite lumina este foarte mica si foarte apropiata de buton. Astfel laserele sunt idnependente de restul componentelor.
Software-ul a fost scris în folosind Programmer's Notepad impreuna cu winavr, compilat cu avr-gcc, pe Windows 7.
Fisiere: proiect.c
Descrierea proiectului:
Folosind ADC-ul, citesc tensiunile de pe foto-rezistente si determin daca raza a fost intrerupta sau nu. In cazul in care o raza a fost intrerupta, difuzorul va scoate sunetul specific acelei corzi.
Functii implementate:
void PLAYNOTE(float duration, float frequency): aceasta functie va manipula pinul catre difuzor si il va face pe acesta sa scoata sunetul conform frecventei trimise ca si parametru.
void adc_init(): initializarea ADC-ului.
unsigned int adc_read(): citirea valorii adc-ului de pe pinul dorit.
In main, am o bucla in care fac cele 6 citiri(pentru fiecare coarda) folosind adc_read(). In cazul in care tensiunea depaseste pragul stabilit, voi apela functia PLAYNOTE cu frecventa corespunzatoare corzii atinse.
A fost un proiect destul de usor de proiectat. Este un proiect simplu care ar putea fi imbunatatit folosind circuite de amplificare pentru difuzor si eventual circuite de filtrare al sunetului.
Arhiva: hotea_cristian.zip