BUZZER

BUZZER-Uncategorized @hr

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
 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);
              
}