V tomto návode sa naučíme, ako ovládať aktívny bzučiak pomocou mikrokontroléra ESP32 a tranzistora. Projekt zahŕňa zapínanie a vypínanie bzučiaka, čím vytvárame pípavý zvuk. Vďaka vstavaným funkciám Wi-Fi a Bluetooth v ESP32 môžete tento projekt v budúcnosti rozšíriť na zložitejšie IoT aplikácie.
Komponenty, ktoré použijeme, zahŕňajú dosku ESP32, aktívny bzučiak, tranzistor (S8050) a rezistor. Správnym zapojením týchto komponentov môžeme ovládať zvuk bzučiaka cez ESP32. Okrem toho poskytneme stručný prehľad zapojenia a kódu potrebného na spustenie tohto projektu. Pre ďalšie objasnenie si určite pozrite video sprevádzajúce tento návod (vo videu o 00:00).
S87050_transistor
Vysvetlenie hardvéru
Hlavné komponenty tohto projektu zahŕňajú mikrokontrolér ESP32, aktívny bzučiak a tranzistor S8050. ESP32 je výkonný mikrokontrolér s podporou Wi-Fi aj Bluetooth, čo umožňuje širokú škálu IoT projektov. Aktívny bzučiak generuje zvuk, keď je naň privedené napätie, zatiaľ čo tranzistor S8050 funguje ako spínač na ovládanie bzučiaka nízkonapäťovým signálom z ESP32.
Tranzistor má tri vývody: kolektor, bázu a emitor. Keď sa na bázový vývod privedie napätie cez rezistor, umožní to tok prúdu z kolektora do emitora, čím sa napája bzučiak. Toto zapojenie zaisťuje, že môžeme bzučiak ovládať bezpečne bez preťaženia GPIO pinov ESP32.
ESP32-13-buzzer-schematic
Podrobnosti z datasheetu
Výrobca
SunFounder
Označenie dielu
TMBB 12 A05
Prevádzkové napätie
3–8 V
Menovité napätie
5 V
Maximálny prúd
30 mA
Oscilačná frekvencia
2700 ± 300 Hz
Použite 1 kΩ rezistor na obmedzenie prúdu do bázy tranzistora.
Uistite sa, že aktívny bzučiak je správne pripojený s kladným a záporným pólom.
Skontrolujte zapojenie pinov, aby ste predišli skratom.
Použite breadboard pre jednoduchšie zapojenie a úpravy.
Bzučiak môže pracovať pri 3,3 V aj 5 V, ale napájajte ho podľa potrieb vášho obvodu.
Pokyny na zapojenie
ESP32-13-buzzer-wriing
Pri zapájaní komponentov začnite vložením aktívneho bzučiaka do breadboardu. Pripojte kladný pól bzučiaka na pin 3,3 V na ESP32. Záporný pól bzučiaka by mal byť pripojený na kolektorový pin tranzistora S8050. Potom vložte tranzistor S8050 do breadboardu a uistite sa, že plochá strana smeruje k vám. Ľavý pin (kolektor) sa pripája na záporný pól bzučiaka, stredný pin (báza) sa pripája na 1 kΩ rezistor a pravý pin (emitor) sa pripája na zem.
Teraz pripojte druhý koniec 1 kΩ rezistora na GPIO pin 14 na ESP32. Nakoniec pripojte emitorový pin tranzistora na uzemňovaciu lištu na breadboarde. Uistite sa, že všetky spojenia sú pevné a pred napájaním obvodu skontrolujte zarovnanie pinov.
Príklady kódu a vysvetlenie
Tu je stručný prehľad kódu, ktorý ovláda bzučiak. Najprv definujeme pin pripojený k bzučiaku:
const int buzzerPin = 14; // pin bzučiaka
Tento riadok nastaví premennú buzzerPin na pin 14 na ESP32, ktorý sa používa na ovládanie bzučiaka.
Ďalej nastavíme pin bzučiaka ako výstup vo funkcii setup():
void setup()
{
pinMode(buzzerPin, OUTPUT); // Nastaviť ako výstup
}
Toto zabezpečí, že ESP32 vie, že má použiť pin 14 na odosielanie signálov na zapínanie a vypínanie bzučiaka.
Vo funkcii loop() vytvoríme cyklus for na aktiváciu bzučiaka viackrát:
for (int i = 0; i < 50; i++) // Cyklus 50-krát a prehratie krátkeho tónu zakaždým
{
digitalWrite(buzzerPin, HIGH); // Nastaviť na HIGH, aby bzučiak zaznel
delay(3); // Počkať 3 milisekundy
digitalWrite(buzzerPin, LOW); // LOW na vypnutie bzučiaka
delay(3); //
}
Tento cyklus spôsobí, že bzučiak pípne 50-krát, pričom každé pípnutie trvá 3 milisekundy. Po dokončení cyklu nasleduje 1-sekundová pauza pred opakovaním.
Demonštrácia / Čo očakávať
Keď sú zapojenie a kód správne nastavené, napájanie ESP32 by malo aktivovať bzučiak a vytvoriť sériu pípnutí. Ak bzučiak neznie, skontrolujte spojenia, najmä orientáciu tranzistora a rezistora. Uistite sa, že v kóde je použitý správny GPIO pin a že napájanie je dostatočné (vo videu o 01:30).
812-ESP32 Tutorial 13/55- Arduino code for controlling buzzer
Language: C++
const int buzzerPin = 14; // the buzzer pin
void setup()
{
pinMode(buzzerPin, OUTPUT); // Set as output
}
void loop()
{
for (int i = 0; i < 50; i++) // Loop 50 times and play a short tone each time
{
digitalWrite(buzzerPin, HIGH); // Set to HIGH to make the buzzer sound
delay(3); // Wait for 3 milliseconds
digitalWrite(buzzerPin, LOW); // LOW to turn off the buzzer
delay(3); //
}
delay(1000); // Wait for 1s before starting the next loop
}
Disclosure: As an Amazon Associate, we earn from qualifying purchases. This means we may receive a small commission if you click a link and make a purchase at no extra cost to you.