Mit PWM-Signalen verschiedener Frequenzen angesteuert, können mit dem passiven Piezo-Buzzer verschiedene Töne erzeugt werden.

Pin Belegung

Codebeispiel Arduino

Anschlussbelegung Arduino

Arduino Sensor
Pin 8 Signal
- +V
Masse GND

Hierbei handelt es sich um ein Beispielprogramm, welches am Buzzer ein Alarmsignal mittels einer Rechteckspannung erzeugt.

int buzzer = 8 ; // Deklaration des Buzzer-Ausgangspin
 
void setup ()
{
  pinMode (buzzer, OUTPUT) ;// Initialisierung als Ausgangspin
}
 
 
void loop ()
{
  unsigned char i;
  while (1)
  {
    // In diesem Programm wird, der Buzzer abwechselnd mit zwei verschiedenen Frequenzen angesteuert
    // Das Signal hierbei besteht aus einer Rechteckspannung.
    // Das an- und ausmachen am Buzzer generiert dann einen Ton, der in etwa der Frequenz entspricht.
    // Die Frequenz definiert sich dadurch, wie lang jeweils die An- und Aus Phase sind
     
    //Frequenz 1
    for (i = 0; i <80; i++) 
    {
      digitalWrite (buzzer, HIGH) ;
      delay (1) ;
      digitalWrite (buzzer, LOW) ;
      delay (1) ;
    }
    //Frequenz 2
    for (i = 0; i <100; i++) 
    {
      digitalWrite (buzzer, HIGH) ;
      delay (2) ;
      digitalWrite (buzzer, LOW) ;
      delay (2) ;
    }
  }
}

Beispielprogramm Download

KY006-Arduino.zip

Codebeispiel Raspberry Pi

Anschlussbelegung Raspberry Pi

Raspberry Pi Sensor
GPIO 24 [Pin 18] Signal
3,3V [Pin 1] * +V *
Masse [Pin 6] GND

*Um ein Einbruch der Versorgungsspannung zu verhindern, muss der Sensor am Raspberry Pi auch noch zusätzlich mit an +3,3V angeschlossen werden da die Versorgung über den Signalpin nicht ausreichend sein kann.

Programmierbeispiel in der Programmiersprache Python.

Das Beispielprogramm nutzt Software-PWM, um am Ausgangspin eine Rechteckspannung mit definierbarer Frequenz zu erstellen.

Durch das An- und Ausschalten wird am Buzzer ein Ton erzeugt, der in etwa der Frequenz der Rechteckspannung entspricht.

# Benoetigte Module werden importiert und eingerichtet
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
 
 
# Hier wird der Ausgangs-Pin deklariert, an dem der Buzzer angeschlossen ist. 
GPIO_PIN = 24
GPIO.setup(GPIO_PIN, GPIO.OUT)
 
# Das Software-PWM Modul wird initialisiert - hierbei wird die Frequenz 500Hz als Startwert genommen 
Frequenz = 500 #In Hertz
pwm = GPIO.PWM(GPIO_PIN, Frequenz)
pwm.start(50)
 
# Das Programm wartet auf die Eingabe einer neuen PWM-Frequenz vom Benutzer.
# Bis dahin wird der Buzzer mit der vorher eingegebenen Freuqenz betrieben (Startwert 500Hz)
try:
    while(True):
        print "----------------------------------------"
        print "Aktuelle Frequenz: %d" % Frequenz
        Frequenz = input("Bitte neue Frequenz eingeben (50-5000):")
        pwm.ChangeFrequency(Frequenz)
         
# Aufraeumarbeiten nachdem das Programm beendet wurde
except KeyboardInterrupt:
    GPIO.cleanup()

Beispielprogramm Download

KY006-RPi.zip

Zu starten mit dem Befehl:

sudo python3 KY006.py

Codebeispiel Micro:Bit

Anschlussbelegung Micro:Bit:

Micro:Bit Sensor
Pin 0 Signal
3V +V
Masse GND

Hierbei handelt es sich um ein MakeCode Beispiel für Micro:Bit welches essenziel das gleiche macht wie die Beispiele der anderen beiden Varianten. Jedoch ist dieses Beispiel eher näher an das Beispiel des Raspberry Pi angelehnt als an das Beispiel des Arduino.

Da dieser Sensor über PWM gesteuert wird muss dieser an Pin 0 des Micro:Bits angeschlossen werden da dort der PWM-Pin des Micro:Bits ist.

Es ist zu beachten dass der Sensor nur an Pin 0 des Micro:Bit angeschlossen werden darf.

Beispielprogramm Download

microbit-KY-006.zip