ESP32 Tutorial 14/55 - Abspielen benutzerdefinierter Musiknoten mit dem SunFounder ESP32 IoT Lernkit

ESP32 Tutorial 14/55 - Abspielen benutzerdefinierter Musiknoten mit dem SunFounder ESP32 IoT Lernkit

In diesem Tutorial werden wir lernen, wie man den SunFounder ESP32-Mikrocontroller verwendet, um musikalische Töne mit einem passiven Summer und einem Transistor zu erzeugen. Das Projekt zielt darauf ab, zu demonstrieren, wie man mit bestimmten Frequenzen Töne erzeugt, indem man den Summer über die GPIO-Pins des ESP32 steuert.

Wir werden einen passiven Summer an den ESP32 anschließen, der es uns ermöglicht, verschiedene musikalische Töne basierend auf der Frequenz, die wir bereitstellen, zu erzeugen. Diese Konfiguration umfasst die Verwendung eines Transistors, um den Summer mit hohen Geschwindigkeiten ein- und auszuschalten, wodurch Schallwellen erzeugt werden, die wir hören können. Zur weiteren Klärung des Projekts sollten Sie sich das Video ansehen (im Video bei 00:30).

ESP32-13-Buzzer-Schema

Hardware erklärt

Die Hauptkomponenten, die in diesem Projekt verwendet werden, umfassen den SunFounder ESP32-Mikrocontroller, einen passiven Summer und einen NPN-Transistor (2N8050). Der ESP32 ist ein leistungsstarkes Entwicklungsboard mit integrierten Wi-Fi- und Bluetooth-Funktionen, was ihn vielseitig für verschiedene IoT-Anwendungen macht. In diesem Fall wird er Signale erzeugen, um den Summer zu steuern.

Der passive Summer erzeugt Ton, wenn eine Wechselspannung an ihn angelegt wird. Im Gegensatz zu aktiven Summern, die einen eingebauten Oszillator haben, benötigen passive Summer ein externes Signal, um Geräusche zu erzeugen. Der Transistor fungiert als Schalter, wodurch der ESP32 den Summer steuern kann, ohne ihn direkt mit Strom zu versorgen, und dabei sicherstellt, dass die Stromstärke des Mikrokontrollers nicht überschritten wird.

S87050_Transistor

Datenblattdetails

Hersteller SunFounder
Teilenummer Passiver Summer
Betriebsspannung 3,3 V - 5 V
Resonanzfrequenz 2 kHz - 4 kHz
Aktueller Verbrauch ≤ 30 mA
Schalldruckpegel ≥ 70 dB
Paket Durchgangsbohrung
Hinweise / Varianten None

  • Stellen Sie die richtige Polarität beim Anschließen des Summers sicher.
  • Verwenden Sie einen Strombegrenzungswiderstand für die Basis des Transistors.
  • Schließen Sie den Summer an eine Stromversorgung an, die mit seiner Spannungsbewertung kompatibel ist.
  • Achten Sie darauf, die maximale Stromstärke des Transistors nicht zu überschreiten.
  • Halten Sie die Verkabelung ordentlich, um Kurzschlüsse zu vermeiden.
  • Testen Sie den Schaltkreis, bevor Sie den Code hochladen, um Schäden an den Bauteilen zu vermeiden.
  • Verwenden Sie ein Steckbrett für einfache Verbindungen von Komponenten.
  • Stellen Sie sicher, dass Sie Eingaben entprellen, wenn Sie Tasten verwenden.
  • Betrachten Sie die Hinzufügung eines Kühlkörpers für den Transistor, wenn er bei hohem Strom verwendet wird.

Verdrahtungsanweisungen

ESP32-13-buzzer-wriing

Um die Komponenten zu verdrahten, beginnen Sie damit, den positiven Anschluss des passiven Summers mit dem 3.3V-Pin des ESP32 zu verbinden. Der negative Anschluss des Summers sollte mit dem Kollektor des NPN-Transistors verbunden werden. Der Emitter-Pin des Transistors sollte mit dem Ground (GND) des ESP32 verdrahtet werden.

Verbinden Sie als Nächstes einen 1 kΩ Widerstand vom Basis des Transistors zum GPIO-Pin 14 des ESP32. Dieser Widerstand begrenzt den Strom, der in die Basis des Transistors fließt. Stellen Sie schließlich sicher, dass alle Masseverbindungen zusammengeführt werden, um einen gemeinsamen Bezug für den Schaltkreis bereitzustellen.

Code-Beispiele & Anleitung

const int buzzerPin = 14; // the buzzer pin

void setup()
{
  pinMode(buzzerPin, OUTPUT); // Set as output
}

Im Code definieren wir eine konstante Variable.buzzerPinwas auf 14 eingestellt ist, was den GPIO-Pin angibt, der mit der Basis des Transistors verbunden ist. In dersetup()Funktion, wir setzen diesen Pin als AUSGANG, damit der ESP32 den Buzzer steuern kann.

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
}

Dieloop()Die Funktion enthält eine for-Schleife, die 50 Mal ausgeführt wird. Bei jeder Iteration wird der Summer schnell ein- und ausgeschaltet, wodurch ein Ton erzeugt wird. Die Verzögerungen von 3 Millisekunden steuern, wie lange der Summer aktiviert und deaktiviert ist, während eine Verzögerung von 1 Sekunde am Ende der Schleife eine Pause vor der Wiederholung bietet.

Demonstration / Was zu erwarten ist

Sobald die Verdrahtung abgeschlossen und der Code hochgeladen ist, sollten Sie eine Reihe kurzer Töne hören, die vom Summer erzeugt werden. Wenn der Summer nicht klingt, überprüfen Sie Ihre Verbindungen, insbesondere die Ausrichtung des Transistors und den Wert des Widerstands. Stellen Sie sicher, dass der richtige Pin im Code verwendet wird und dass das ESP32 ordnungsgemäß mit Strom versorgt wird.

Während der Demonstration, wenn Sie Probleme haben, kann das an falscher Verdrahtung oder der Verwendung des falschen Pins für den Summer liegen. Überprüfen Sie die Verdrahtung anhand der Anweisungen und stellen Sie sicher, dass die Stromversorgung ausreichend ist (im Video bei 08:15).

Video-Zeiten

  • 00:00 Start
  • 1:52 Einführung in das Projekt
  • 4:11 Verdrahtung Erklärt
  • 8:11 Auswahl des ESP32-Boards und des COM-Ports im Arduino IDE
  • 9:53 Arduino-Code erklärt
  • 13:17 Projektvorführung
  • 13:58 Projekt 2 Code und Demonstration

Bilder

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
813-ESP32 Tutorial 14/55- Arduino code for custom music tone
Sprache: C++
Kopiert!

Ressourcen & Referenzen

Dateien📁

Datenblatt (pdf)