U ovom tutorijalu naučit ćemo kako kontrolisati aktivni zujalicu koristeći ESP32 mikrokontroler i tranzistor. Projekat uključuje uključivanje i isključivanje zujalice, stvarajući zvuk pištanja. Sa ugrađenim Wi-Fi i Bluetooth mogućnostima ESP32-a, ovaj projekat možete proširiti u složenije IoT aplikacije u budućnosti.
Komponente koje ćemo koristiti uključuju ESP32 ploču, aktivnu zujalicu, tranzistor (S8050) i otpornik. Pravilnim povezivanjem ovih komponenti, možemo kontrolisati zvuk zujalice putem ESP32-a. Dodatno, pružit ćemo kratak pregled povezivanja i koda potrebnog za pokretanje ovog projekta. Za dodatna pojašnjenja, svakako pogledajte video koji prati ovaj tutorijal (u videu na 00:00).
S87050_transistor
Objašnjenje hardvera
Glavne komponente ovog projekta uključuju ESP32 mikrokontroler, aktivnu zujalicu i S8050 tranzistor. ESP32 je moćan mikrokontroler koji posjeduje i Wi-Fi i Bluetooth, omogućavajući širok spektar IoT projekata. Aktivna zujalica generiše zvuk kada se primijeni napon, dok S8050 tranzistor djeluje kao prekidač za kontrolu zujalice pomoću niskonaponskog signala sa ESP32-a.
Tranzistor ima tri pina: kolektor, bazu i emiter. Kada se napon primijeni na bazu kroz otpornik, omogućava protok struje od kolektora do emitera, čime se napaja zujalica. Ova postavka osigurava da možemo sigurno kontrolisati zujalicu bez preopterećenja GPIO pinova ESP32-a.
ESP32-13-buzzer-schematic
Detalji iz tehničke dokumentacije
Proizvođač
SunFounder
Broj dijela
TMBB 12 A05
Radni napon
3–8 V
Nazivni napon
5 V
Maksimalna struja
30 mA
Frekvencija oscilovanja
2700 ± 300 Hz
Koristite otpornik od 1 kΩ da ograničite struju do baze tranzistora.
Provjerite da je aktivna zujalica pravilno spojena sa pozitivnim i negativnim terminalima.
Dvaput provjerite spojeve pinova kako biste spriječili kratke spojeve.
Koristite breadboard za lakše povezivanje i podešavanja.
Zujalica može raditi na 3.3V i 5V, ali je napajajte prema potrebama vašeg kola.
Upute za povezivanje
ESP32-13-buzzer-wriing
Da biste povezali komponente, počnite umetanjem aktivne zujalice u breadboard. Spojite pozitivni terminal zujalice na 3.3V pin na ESP32-u. Negativni terminal zujalice treba spojiti na kolektor pin S8050 tranzistora. Zatim umetnite S8050 tranzistor u breadboard, pazeći da je ravna strana okrenuta prema vama. Lijevi pin (kolektor) spaja se na negativni terminal zujalice, srednji pin (baza) spaja se na otpornik od 1 kΩ, a desni pin (emiter) spaja se na masu.
Sada uzmite drugi kraj otpornika od 1 kΩ i spojite ga na GPIO pin 14 na ESP32-u. Na kraju, spojite emiter pin tranzistora na masu (ground rail) na breadboardu. Provjerite da su svi spojevi sigurni i dvaput provjerite poravnanje pinova prije nego što uključite kolo.
Primjeri koda i objašnjenje
Evo kratkog pregleda koda koji kontroliše zujalicu. Prvo definišemo pin spojen na zujalicu:
const int buzzerPin = 14; // pin zujalice
Ova linija postavlja varijablu buzzerPin da se odnosi na pin 14 na ESP32-u, koji se koristi za kontrolu zujalice.
Zatim postavljamo pin zujalice kao izlaz u setup() funkciji:
void setup()
{
pinMode(buzzerPin, OUTPUT); // Postavi kao izlaz
}
Ovo osigurava da ESP32 zna da koristi pin 14 za slanje signala za uključivanje i isključivanje zujalice.
U loop() funkciji, kreiramo for petlju za aktiviranje zujalice više puta:
for (int i = 0; i < 50; i++) // Petlja 50 puta i svaki put svira kratki ton
{
digitalWrite(buzzerPin, HIGH); // Postavi na HIGH da zujalica zazvuči
delay(3); // Čekaj 3 milisekunde
digitalWrite(buzzerPin, LOW); // LOW za isključivanje zujalice
delay(3); //
}
Ova petlja će učiniti da zujalica pišti 50 puta, pri čemu svako pištanje traje 3 milisekunde. Nakon završetka petlje, slijedi pauza od 1 sekunde prije ponavljanja.
Demonstracija / Šta očekivati
Kada su povezivanje i kod pravilno postavljeni, uključivanje ESP32-a trebalo bi aktivirati zujalicu, proizvodeći niz pištanja. Ako zujalica ne zazvuči, provjerite spojeve, posebno orijentaciju tranzistora i otpornika. Provjerite da se koristi ispravan GPIO pin u kodu i da je napajanje adekvatno (u videu na 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.