Raspberry Pi Pico: Tonausgabe mit Buzzer KY-006

Um Töne auszugeben benötigt man einen Lautsprecher. Zum Beispiel das oft als „passive buzzer“ bezeichnete Modul vom Typ KY-006. Im Prinzip ist das ein ganz einfacher Lautsprecher, der sich dafür eignet programmierbare Töne auszugeben. Allerdings eignet sich dieser Lautsprecher nur zur Ausgabe von summenden oder piepsenden Tönen.

Bei der Ton-Ausgabe muss man beachten, dass ein Ton einer bestimmten Frequenz entspricht. Eine Frequenz gibt zahlenmäßig an, wie oft sich ein Signalwechsel innerhalb einer Sekunde wiederholt. Je öfter der Signalwechsel stattfindet, desto höher ist die Frequenz bzw. der Ton.

Um wechselnde Töne von hoch nach tief oder von tief nach hoch zu erzeugen muss man die Frequenz ändern.

Eine Frequenz können wir mit Hilfe eines PWM-Signal-Generators erzeugen. Das funktioniert beim Raspberry Pi Pico an jedem GPIO-Pin und ist einfach zu programmieren.

Ein PWM-Signal ist ein kontinuierlicher Signalwechsel zwischen High und Low. Dabei kennt ein PWM-Signal zwei Parameter.

  1. Tastgrad bzw. Duty Cycle: Angabe, wie groß der High-Anteil des PWM-Signals sein soll. Ein Wert von 0 (oder 0%) wäre ein Dauer-Low, womit man die Ton-Ausgabe ausschalten würde. Ein Wert von 65.535 (oder 100%) wäre ein Dauer-High, womit man den Ton mit maximaler Lautstärke ausgeben würde.
  2. Frequenz in Hz (Hertz): Wert zwischen 500 und 2.500 für den Ton.

Mehr Informationen zum Erzeugen einer PWM und Experimente mit PWM:

Aufbau und Bauteile

Raspberry Pi Pico: Tonausgabe mit Buzzer KY-006

Raspberry Pi Pico KY-006
Pin 18 GND -
Pin 20 GPIO 15 S

Schnell und einfach alle Bauteile zusammen bestellen

Programmcode

Im folgenden Programmcode wird ein PWM-Signal an einem GPIO-Pin initialisiert. Dazu müssen zwei Parameter für das PWM-Signal eingestellt werden.

  1. Duty Cycle: Der Wert stellt die Lautstärke der Tonausgabe ein. Ein Wert von 500 ist ausreichend. Für Lauter muss der Wert erhöht, für Leiser verringert werden. Der größte Wert liegt bei 65.535, der niedrigste Wert bei 0.
  2. Frequenz: Der Wert bestimmt den Ton. Für einen höheren Ton muss der Wert vergrößert werden und für einen tieferen Ton muss der Wert verkleinert werden. Allerdings ist die Frequenz, die ein KY-006 ausgeben kann nach oben und unten begrenzt.

Der weitere Programmcode verändert die Frequenz schrittweise von 500 bis 2.500 in Schritten von jeweils 100 Hertz.

# Bibliotheken laden
from machine import Pin, PWM
from time import sleep_ms

# PWM und GPIO initialisieren
pwm = PWM(Pin(15))

# 1. Parameter: Tastgrad (Duty Cycle)
pwm.duty_u16(500)

# 2. Parameter: Frequenz in Hertz (Hz)
for freq in range (500, 2500, 100):
    print(freq, 'Hz')
    pwm.freq(freq)
    # Tondauer in Sekunden
    sleep_ms(300)

# PWM-Signal auf Dauer-Low (abschalten)
pwm.duty_u16(0)

Darf es ein bisschen mehr sein?

Wenn Du statt MicroPython die Alternative CircuitPython verwendest, dann kannst du auch direkt MP3-Dateien abspielen.

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren