Zadatak
Na pin broj 6 Arduino pločice spojimo pasivnu zujalicu (buzzer) i napišimo program koji će generisati zvuk frekvencije 440 Hz (ton A4) u trajanju od 1 sekunde.
Komponente:
- 1 * Arduino UNO R3 mikrokontroler,
- 1 * USB kabal,
- 1 * Pasivna zujalica (buzzer),
- 1 * Eksperimentalna pločica,
- 2 * Kratkospojničke žice (muško-muške)
Šta je buzzer?
Piezzo buzzer, također poznak kao zujalica je komponenta koja se koristi za generisanje zvuka. Moguće je podešavati frekvenciju kako bi proizvodili ton određene frekvencije. Postoje aktivni i pasivni Piezzo buzzeri.
Aktivni imaju ugrađen oscillator koji generiše konstantnu frekvenciju te se aktiviraju postavljanjem stanja HIGH na pinove, dok pasivni nemaju ugrađen osciloskop i kontrolišu se dovođenjem izmjeničnog signala na pinove. Razlikuju se po tome što pasivni imaju oznaku HX na kućištu, dok aktivni nemaju.
U vježbi koristimo pasivni buzzer koji ima dvije nožice. Pozitivna nožica sa oznakom + na kućištu spaja se na digitalni pin Arduino pločice, a negativna nožica na pin uzemljenja (GND).
Zvuk se generiše pomoću funkcije tone() koja mora primiti parameter rednog broja pina i frekvencije zvuka kojeg treba proizvesti, odnosno note. Možemo dodati treći parameter koji govori koliko milisekundi će se izvoditi određena nota. Funkcija noTone() prima samo oznaku broja pina te prekida izvođenje zvuka na zadanom pinu.
1. Izgradite sklop
Aktivni imaju ugrađen oscillator koji generiše konstantnu frekvenciju te se aktiviraju postavljanjem stanja HIGH na pinove, dok pasivni nemaju ugrađen osciloskop i kontrolišu se dovođenjem izmjeničnog signala na pinove. Razlikuju se po tome što pasivni imaju oznaku HX na kućištu, dok aktivni nemaju.
U vježbi koristimo pasivni buzzer koji ima dvije nožice. Pozitivna nožica sa oznakom + na kućištu spaja se na digitalni pin Arduino pločice, a negativna nožica na pin uzemljenja (GND).
Zvuk se generiše pomoću funkcije tone() koja mora primiti parameter rednog broja pina i frekvencije zvuka kojeg treba proizvesti, odnosno note. Možemo dodati treći parameter koji govori koliko milisekundi će se izvoditi određena nota. Funkcija noTone() prima samo oznaku broja pina te prekida izvođenje zvuka na zadanom pinu.
2. Program
/***********************************************************
Buzzer (zujalica) – Generisanje zvuka
STEM Lab
***********************************************************/
int buzzer = 6; // Definiranje digitalnog pina 6 kao pina za upravljanje zujalicom
void setup() {
pinMode(buzzer, OUTPUT); // Postavite digitalni način rada s pina 6, IZLAZ: izlazni način
tone(6, 440, 1000); // Generišite zvuk frekvencije 440 Hz (nota A4) u trajanju od 1 sekunde
delay(1000); // Postavite vrijeme čekanja, 1000 milisekundi (1 sekunda)
noTone(buzzer); // Isključite zvuk
}
void loop() {}
3. Prenesite program na Arduino UNO pločicu.
Budući da se funkcije tone() i noTone() nalaze u setup() dijelu programa zvuk će se čuti samo jednu sekundu. Kako bi se zvuk ponavljao svake sekunde funkcije tone() i noTone() je potrebno navesti unutar loop() dijela programa umjesto setup().
Frekvencije za sve note je moguće pronaći u datoteci pitches.h na internetu koja se može inicijalizirati u kodu pozivom naredbe #include<pitches.h>.
Tabela ispod prikazuje tonove i njihove frekvencije.