Izvođenje glazbe

UVOD:

U ovoj lekciji, programirati ćemo Arduino za upravljanje pasivnom zujalicom (buzzerom). Posljedično, zujalica će proizvesti zvuk, melodiju, odnosno reproducirati određene tonove. Molim vas da ovakvu vrstu reprodukcije ne zamjenjujete sa MP3 formatom, jer u ovom slučaju to nije MP3 ili neki drugo audio format.

 

MATERIJAL:

1x Arduino Uno
1x USB kabel
1x NPN tranzistor (8050)
1x otpornik 1k
1x otpornik 220R
1x pasivna zujalica
1x LED
1x Prototipna pločica
– Nekoliko žica za spajanje

Kôd programa:

 

SHEMA:

Princip rada:

Štreberski opis principa rada pasivne zujalice ide otprilike ovako: sve dok pasivnoj zujalici šaljete pravokutni signal različite frekvencije, zujalica će proizvoditi različite zvukove.
Ključne funkcije:

– tone()
Generira pravokutni signal određene frekvencije (ciklus od 50%) na određenom pinu. Trajanje može biti određeno, inače se signal ponavlja sve do pozivanja funkcije noTone(). Na pin možemo spojiti piezo zujalicu ili neki drugi odgovarajući zvučnik za reprodukciju tonova.

Istovremeno možemo generirati samo jedan ton. Ako se na nekom drugom pinu već reproducira ton, tada pozivanje funkcije tonne() neće imati efekta. Ukoliko se ton izvodi na istom pinu pozivanje funkcije će podesiti njegovu frekvenciju.

Korištenje funkcije tone() će interferirati sa PWMmpinovima 3 i 11 (na svim pločama osim Mega ploče).

NAPOMENA:
Ukoliko želite izvoditi različite visine tonova na više pinova, tada morate pozvati funkciju noTone() na pinu prije pozivanja funkcije tone()na slijedećem pinu.

Sintaksa:
tone(pin, frequency)
tone(pin, frequency, duration)

Parametri:
pin: pin na kojem će se generirati ton
frequency: frekvencija tona u hercima – unsignet int
duration: trajanje tona u milisekundama (opcija) – unsignet long

Returns:
ništa

noTone()
Zaustavlja generiranje pravokutnog signala pokrenutog funkcijom tone(). Ova funkcija neće imati nikakav efekt,ako nije generiran niti jedan ton.

NAPOMENA:
Ukoliko želite izvoditi različite visine tonova na više pinova, tada morate pozvati funkciju noTone() na pinu prije pozivanja funkcije tone()na sljedećem pinu.

Sintaksa:
noTone(pin)

Parametri:
pin: pin na kojem će se zaustaviti generiranje tona

Returns:

ništa

Video: