Akustický bzučák je snadno použitelný modul obsahující spínací tranzistor a samotný bzučák. Tato kombinace umožňuje volitelným datovým pinem zapínat a vypínat bzučák dle potřeby. Další výhodou je možnost volby mezi napájením 3,3 V či 5 V, kdy lze hlasitost modulu určovat ve dvou stupních dle velikosti napájecího napětí. Modul s akustickým bzučákem také obsahuje uprostřed montážní díru, díky které ho lze snadno upevnit v navrhovaném zařízení.
Pro propojení akustického bzučáku s Arduino deskou stačí propojit pouze 3 vodiče. Propojíme Vcc s +5 V (či + 3,3 V), I/O s pinem 4 a GND se zemí Arduina. Datový vodič, zde zvolený D4, lze samozřejmě vyměnit za jiný dostupný, jen je nutné tuto změnu zohlednit v programu.
Ukázkový kód na začátku obsahuje nastavení proměnné bzucak s číslem propojovacího datového pinu a dále ve funkci setup nastavení tohoto pinu jako výstupního společně s jeho nastavením na logickou jedničku. Toto nastavení je důležité pro použitý modul, kdy tento je aktivní v logické nule a je tedy nutné ho při nepoužívání nastavit do opačné hladiny, abychom předešli brumu bzučáku. V nekonečné smyčce loop se nachází pro demonstraci smyčka for, která v rozsahu proměnné i od 1 do 10 volá podprogram zahraj s proměnnou frekvencí dle aktuálního čísla i a pevně nastavenou dobou hraní 50 ms. Po tomto následuje pauza 250 ms a po dokončení smyčky for následně pauza po dobu 2 sekund pro rozeznání konce smyčky. V uvedeném podprogramu zahraj se nachází dvě funkce, z nichž první je funkce tone, která obsahuje na prvním místě proměnnou bzucak, ve které je nastaven datový propojovací pin, na druhém místě frekvence v Hertzech a na posledním místě doba hraní zvuku v milisekundách. Druhá funkce podprogramu zahraj již jen nastaví propojovací pin akustického bzučáku na logickou jedničku pro odstranění brumu.
// Akustický bzučák // proměnná pro nastavení propojovacího pinu int bzucak = 4; void setup() { // nastavení propojovacího pinu jako výstupního pinMode(bzucak, OUTPUT); // vzhledem k tomu, že náš bzučák je // aktivní v nule, tedy LOW, je nutné // ho po dohrání nastavit na vysokou // úroveň, aby jsme zamezili bzučení // v pauzách digitalWrite(bzucak, HIGH); } void loop() { // v nekonečné smyčce for, která proběhne // pro hodnoty i 1 až 10, se vždy zavolá // funkce zahraj, která zahraje zvuk o // nastavené frekvenci a délce zadané ve tvaru // zahraj(frekvence, doba), kde frekvence // je v Hertzech a doba v milisekundách for (int i=1; i < 11; i++) { // frekvence se rovná i-násobku 100, // zde tedy bude v rozsahu 100 až 1000 Hz, // doba hraní je pak 50 milisekund zahraj(100*i, 50); // po každé frekvenci následuje pauza 250 ms // pro rozeznání frekvencí delay(250); } // pauza 2 vteřiny pro rozeznání konce smyčky delay(2000); } // podprogram zahraj obsahuje všechny důležité // funkce pro zahrání zadaného zvuku void zahraj(int frekvence, int doba) { // funkce tone má na prvním místě pin // s připojeným bzučákem, na druhém // frekvenci hraného zvuku a na třetím // dobu hraní zvuku v milisekundách; // maximální frekvence je 65535 Hz, // pro člověka neslyšitelná frekvence tone(bzucak, frekvence, doba); delay(doba); digitalWrite(bzucak, HIGH); }
Po nahrání programu do Arduino desky s připojeným modulem akustického bzučáku uslyšíme zvyšující se zvuk v rozmezí 100 až 1000 Hz.
Akustický bzučák propojený s Arduino deskou je vhodným výstupním modulem v zapojeních a zařízeních, kde požadujeme spolehlivou a nepřeslechnutelnou komunikaci s uživatelem. Bzučák dosahuje poměrně silného zvuku a při nastavení vyšších frekvencí v řádu tisícovek Hertzů se jedná o poměrně nepříjemné zvuky. Dá se tedy použít například do různých zařízení sloužících jako ochrana majetku před nežádoucími osobami, soutěžních sirén a podobně.
Seznam použitých komponent:
http://dratek.cz/arduino/849-arduino-akusticky-bzucak.html
http://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html
http://dratek.cz/arduino/1227-7-ks-mini-nepajive-pole-25-kontaktu-1458405292.html