BUZZER

UVOD
Buzzer ili beeper je zvučno-signalizacijski uređaj. Može biti mehanički, elektromehanički ili piezoelektrični. Primjer mehaničkog je “joy buzzer” koji se koristi na starim budilicama, elektromehanički je onaj povezan na zvono vaših ulaznih vrata, a s piezo buzzerima ćemo se pozabaviti u ovom tutorialu.
PIEZO EFEKT
Piezo efekt je sposobnost materijala da generira električni naboj na dano mehaničko opterećenje. Ime potječe od grčke riječi piezo što znači pritisnuti, a otkirili su ga braća Pierre i Jacques Currie. Kada se piezoelektrični materijal izloži mehaničkom opterećenju (pritisak) događa se premještanje pozitivnog i negativnog naboja, što rezultira vanjskim električnim poljem. Odličan piezoelektrični materijal je quartz, koji pokreće quartz satove. Osim navedenih satova, novija primjena ove tehnologije je prepoznavanje govora. Pa tako mikrofon u koji govorite kada želite da računalo zapisuje vaš govor koristi piezo efekt kako bi energiju glasa pretvorio u električni signal kojeg računalo može obraditi.
Što se tiče buzzera, u njemu se nalazi mala zavojnica i magnet. Kada struja poteče kroz zavojnicu, ona se magnetizira i povlači prema magnetu. Iz prethodno objašnjenog piezo efekta, jasno nam je da će to izazvati mali “klik”. Kako se to ponavlja nekoliko tisuća puta u sekunda, “klik” postaje zvuk.
KAKO SPOJITI BUZZER?
Pazeći na polaritet, spojiti ćemo negativni pol buzzera na gnd Dasduina, te pozitivni na digitalni pin 9 dasduina. Možete spojiti jedan pol preko nekog otpornika, primjerice 100Ω. Napomena: buzzer mora biti spojen na PWM pin, ukoliko ne želite jednoliki zvuk. Ne zaboravite skinuti naljepnicu s buzzera.
KOD I TONE LIBRARY
Tone library se nalazi u Arduino IDE i ne trebamo ga posebno instalirati. Koristi funkciju tone() na nekom od PWM pinova.
Sintaksa je sljedeća:
tone(pin, frekvencija);
tone(pin, frekvencija, trajanje);
gdje je:
pin – broj PWM pina
frekvencija – frekvencija tona u Hz (pogledaj frekvencije)
trajanje – duljina tona u milisekundima (nije nužno)
Kod reproducira pjesmu Hladnog Piva – Nije sve tako sivo. Šaljite nam Vaše, ako napravite nešto.
/*
Ovaj kod svira pjesmu Hladnog Piva - Nije sve tako sivo
tonovi koji su koristeni:
ton frekvencija
a 220 Hz
(a)# 233 Hz
c 262 Hz
d 294 Hz
f 349 Hz
A 440 Hz
Vise informacija na http://peabody.sapp.org/class/st2/lab/notehz/
Written by e-radionica.com
*/
const
int
buzzerPin = 9;
const
int
duljinaPjesme = 32;
// mora biti koliko ima nota i pauza
char
nota[] =
"ddfd fda##d# d#affAf Afdaaa# #cc"
;
// razmak predstavlja pauzu
// ritam je array vrijednosti svake nota i pauze
// "1" predstavlja cetvrtinku, 2 polovinku i td.
int
ritam[] = {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
// tepo je brzina izvođenja pjesme, smanjite tempo da ubrzate pjesmu
int
tempo = 80;
void
setup
()
{
pinMode
(buzzerPin,
OUTPUT
);
}
void
loop
()
{
int
i, trajanje;
for
(i = 0; i < duljinaPjesme; i++)
// koraci kroz array pjesme
{
trajanje = ritam[i] * tempo;
if
(nota[i] ==
' '
)
{
delay
(trajanje);
}
else
{
tone
(buzzerPin, frekvencija(nota[i]), trajanje);
// za vise pogledajte http://e-radionica.hr/blog/?p=513
delay
(trajanje);
}
delay
(tempo/10);
}
while
(1){}
// ako zelite da neprestano svira ovo melodiju, stavite komentare (//) ispred funkcije while
}
int
frekvencija(
char
nota)
{
int
i;
const
int
brojnota = 6;
// koliko nota spremamo
// sljedecim arrayima zadajemo imena i frekvencije notama koje zelimo koristiti
char
ime[] = {
'c'
,
'd'
,
'f'
,
'a'
,
'#'
,
'A'
};
int
vratiFrekvenciju[] = {262, 294, 349, 220, 233, 440};
// prolazimo kroz array i trazimo ton, odnosno njegovu frekvenciju
for
(i = 0; i < brojnota; i++)
{
if
(ime[i] == nota)
// ako je to ton koji trazimo
{
return
(vratiFrekvenciju[i]);
// vrati njegovu frekvenciju
}
}
return
(0);
}