Search Code

ESP32 Tutorial 13/55 - Arduino Piep met Actieve Zoemer | SunFounder's ESP32 IoT Leerpakket

ESP32 Tutorial 13/55 - Arduino Piep met Actieve Zoemer | SunFounder's ESP32 IoT Leerpakket

In deze tutorial leren we hoe we een actieve zoemer kunnen aansturen met een ESP32-microcontroller en een transistor. Het project omvat het aan- en uitzetten van de zoemer, waardoor een pieptoon ontstaat. Met de ingebouwde Wi-Fi- en Bluetooth-mogelijkheden van de ESP32 kun je dit project in de toekomst uitbreiden naar complexere IoT-toepassingen.

De componenten die we gebruiken zijn onder andere de ESP32-kaart, een actieve zoemer, een transistor (S8050) en een weerstand. Door deze componenten correct te bedraden, kunnen we het geluid van de zoemer via de ESP32 aansturen. Daarnaast geven we een kort overzicht van de bedrading en code die nodig zijn om dit project werkend te krijgen. Voor verdere verduidelijking kun je de video bij deze tutorial bekijken (in video op 00:00).

S87050_transistor

Hardware uitgelegd

De belangrijkste componenten van dit project zijn de ESP32-microcontroller, de actieve zoemer en de S8050-transistor. De ESP32 is een krachtige microcontroller met zowel Wi-Fi als Bluetooth, waardoor een breed scala aan IoT-projecten mogelijk is. De actieve zoemer genereert geluid wanneer er spanning wordt aangelegd, terwijl de S8050-transistor fungeert als schakelaar om de zoemer aan te sturen met een laagspanningssignaal van de ESP32.

De transistor heeft drie pinnen: collector, basis en emitter. Wanneer er via een weerstand spanning op de basispin wordt gezet, laat deze stroom van de collector naar de emitter stromen, waardoor de zoemer van stroom wordt voorzien. Deze opstelling zorgt ervoor dat we de zoemer veilig kunnen aansturen zonder de GPIO-pinnen van de ESP32 te overbelasten.

ESP32-13-buzzer-schematic

Datasheet-details

Fabrikant SunFounder
Onderdeelnummer TMBB 12 A05
Bedrijfsspanning 3–8 V
Nominale spanning 5 V
Maximale stroom 30 mA
Oscillatiefrequentie 2700 ± 300 Hz

 

  • Gebruik een weerstand van 1 kΩ om de stroom naar de basis van de transistor te beperken.
  • Zorg ervoor dat de actieve zoemer correct is aangesloten met positieve en negatieve aansluitingen.
  • Controleer de pinaansluitingen dubbel om kortsluiting te voorkomen.
  • Gebruik een breadboard voor eenvoudigere verbindingen en aanpassingen.
  • De zoemer kan werken op zowel 3,3V als 5V, maar voed hem volgens de behoeften van je circuit.

Bedradingsinstructies

ESP32-13-buzzer-wriing

Om de componenten te bedraden, begin je met het plaatsen van de actieve zoemer op het breadboard. Verbind de positieve aansluiting van de zoemer met de 3,3V-pin op de ESP32. De negatieve aansluiting van de zoemer moet worden verbonden met de collectorpin van de S8050-transistor. Plaats vervolgens de S8050-transistor op het breadboard en zorg ervoor dat de platte kant naar je toe is gericht. De linkerpin (collector) verbindt met de negatieve aansluiting van de zoemer, de middelste pin (basis) verbindt met een weerstand van 1 kΩ, en de rechterpin (emitter) verbindt met de grond.

Neem nu het andere uiteinde van de weerstand van 1 kΩ en verbind dit met GPIO-pin 14 op de ESP32. Verbind ten slotte de emitterpin van de transistor met de aardrail op het breadboard. Zorg ervoor dat alle verbindingen stevig zijn en controleer de uitlijning van de pinnen dubbel voordat je het circuit van stroom voorziet.

Codevoorbeelden & uitleg

Hier is een kort overzicht van de code die de zoemer aanstuurt. Eerst definiëren we de pin die is verbonden met de zoemer:

const int buzzerPin = 14; // de zoemerpin

Deze regel stelt de variabele buzzerPin in om te verwijzen naar pin 14 op de ESP32, die wordt gebruikt om de zoemer aan te sturen.

Vervolgens stellen we de zoemerpin in als uitvoer in de setup()-functie:

void setup()
{
  pinMode(buzzerPin, OUTPUT); // Instellen als uitvoer
}

Dit zorgt ervoor dat de ESP32 weet dat pin 14 moet worden gebruikt om signalen te sturen om de zoemer aan en uit te zetten.

In de loop()-functie maken we een for-lus om de zoemer meerdere keren te activeren:

for (int i = 0; i < 50; i++) // Lus 50 keer en speel elke keer een korte toon
{
  digitalWrite(buzzerPin, HIGH); // Instellen op HIGH om de zoemer te laten klinken
  delay(3); // Wacht 3 milliseconden
  digitalWrite(buzzerPin, LOW); // LOW om de zoemer uit te zetten
  delay(3); // 
}

Deze lus laat de zoemer 50 keer piepen, waarbij elke piep 3 milliseconden duurt. Na het voltooien van de lus is er een vertraging van 1 seconde voordat deze wordt herhaald.

Demonstratie / Wat te verwachten

Wanneer de bedrading en code correct zijn ingesteld, zou het inschakelen van de ESP32 de zoemer moeten activeren, waardoor een reeks pieptonen ontstaat. Als de zoemer geen geluid maakt, controleer dan de verbindingen, vooral de oriëntatie van de transistor en de weerstand. Zorg ervoor dat de juiste GPIO-pin in de code wordt gebruikt en dat de voeding voldoende is (in video op 01:30).

Videotijdstempels

  • 00:00 Start
  • 1:45 Introductie zoemerprogramma
  • 5:57 Bedrading zoemer en S8050-transistor
  • 9:57 Arduino-code voor ESP32-zoemer
  • 12:52 Selecteren van ESP32-kaart en COM-poort
  • 14:05 3.1 Demonstratie zoemerproject

Afbeeldingen

ESP32-13-buzzer-wriing
ESP32-13-buzzer-wriing
ESP32-13-buzzer-schematic
ESP32-13-buzzer-schematic
SunFounder-ESP32-Lesson-13-Beep.mp4_snapshot_07.43.463
SunFounder-ESP32-Lesson-13-Beep.mp4_snapshot_07.43.463
S87050_transistor
S87050_transistor
812-ESP32 Tutorial 13/55- Arduino code for controlling buzzer
Taal: 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
}

Hulpmiddelen en referenties

Bestanden📁

Datasheet (pdf)