Documente noi - cercetari, esee, comentariu, compunere, document
Documente categorii

Microcontrolere - Generarea unui sunet

Microcontrolere - Generarea unui sunet

Un buzzer piezo poate fi adaugata la o linie de iesire a unui microcontroler pentru a livra tonuri "audio", piuituri si semnale. Este important de stiut ca sunt doua mari tipuri de dispozitive piezoelectrice emitatoare de sunet. Una are componente active inauntrul carcasei si are nevoie numai de alimentare de curent continuu pentru a emite un ton sau un beep. In general tonurile sau beep-urile emise de aceste difuzoare sau piuitoare nu pot fi schimbate - ele sunt fixe din cauza circuitelor interne. Acesta nu este tipul despre care discutam in acest articol. Celalalt tip consta dintr-un buzzer piezo si necesita semnal livrat in ea pentru a functiona. Depinzand de frecventa formei de unda, iesirea poate fi ton, melodie, alarma sau chiar un mesaj vocal. Pentru ca ele sa functioneze trebuie sa livram un ciclu care este alcatuit din semnale HIGH si LOW. Tranzitia de la HIGH la LOW sau de la LOW la HIGH cauzeaza miscari diafragmei pentru a produce secvente de sunete. Forma de unda poate avea o schimbare fina de la o valoare la alta (denumita unda sinusoidala) sau o schimbare rapida (denumita unda dreptunghiulara). Un calculator este ideal pentru producerea de unde dreptunghiulare. Livrarea de unde dreptunghiulare produce o iesire usor grosiera. Conectarea unui buzzer piezo este foarte usoara. Un pin este conectat la linia negativa, iar cealalta la o iesire a microcontrolerului, dupa cum este ilustrat in figura de mai jos. Acesta va livra o forma de unda de 5v catre buzzerul piezo. Pentru a produce o tensiune mai mare, forma de unda trebuie amplificata si aceasta necesita un tranzistor de comanda si o bobina.



Conectarea unui buzzer piezo la un microcontroler

Ca si in cazul tastaturii, puteti folosi un macro care va furniza o rutina BEEP intr-un program cand va fi necesar.

BEEP macro freq, duration

freq: frecventa sunetului. Un numar mai mare produce o frecventa mai inalta. duration: durata sunetului. Un numar mai mare reprezinta un sunet mai lung.

Exemplu 1: BEEP 0xFF, 0x02

Iesirea buzzerului piezo are cea mai inalta frecventa si durata de 2 cicluri de 65.3ms, ceea ce rezulta 130.6ms.

Exemplu 2: BEEP 0x90, 0x05

Iesirea buzzerului piezo are frecventa de 0x90 si durata de 5 cicluri de 65.3ms. Este bine ca argumentele macroului sa fie determinate prin experimente si astfel sa fie ales sunetul care se potriveste cel mai bine pentru aplicatie. In continuare este prezentat macroul BEEP: