KY-006 Passiver Piezo-Buzzer
Mit PWM-Signalen verschiedener Frequenzen angesteuert, können mit dem passiven Piezo-Buzzer verschiedene Töne erzeugt werden.
- Arduino
- Raspberry Pi
- Raspberry Pi Pico
- Micro:Bit
Mit diesem Modul können Sie verschiedene Töne erzeugen, indem Sie den passiven Piezo-Buzzer mit PWM-Signalen ansteuern. PWM-Signale sind spezielle elektrische Signale, die in verschiedenen Frequenzen gesendet werden können, um unterschiedliche Töne zu erzeugen. Der Buzzer kann Töne im Bereich von 1,5 kHz bis 2,5 kHz erzeugen. Er funktioniert mit einer Spannung von 3,3 V bis 5 V und ist klein und kompakt, mit Abmessungen von 18,5 x 15 mm. Dieses Modul ist ideal, wenn Sie akustische Signale oder Alarmtöne in Ihren Projekten benötigen, und lässt sich einfach einbinden.
Technische Daten | |
---|---|
Betriebsspannung | 3,3 V - 5 V |
Tonerzeugungsbereich | 1,5 kHz - 2,5 kHz |
Abmessungen | 18,5 x 15 mm |
Anschlussbelegung
Arduino | Sensor |
---|---|
Pin 8 | Signal |
- | +V |
GND | GND |
Code-Beispiel
Hierbei handelt es sich um ein Beispielprogramm, welches am Buzzer ein Alarmsignal mittels einer Rechteckspannung erzeugt.
Um das folgende Codebeispiel auf Ihren Arduino zu laden, empfehlen wir die Verwendung der Arduino IDE. In der IDE können Sie den passenden Port und das richtige Board für Ihr Gerät auswählen.
Kopieren Sie den unten stehenden Code in Ihre IDE. Um den Code auf Ihren Arduino hochzuladen, klicken Sie einfach auf den Upload-Button.
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
// 1.Frequenz
for(i = 0; i <80; i++) {
digitalWrite(buzzer, HIGH);
delay(1);
digitalWrite(buzzer, LOW);
delay(1);
}
// 1 Sekunde Pause
delay(1000);
// 2.Frequenz
for(i = 0; i <100; i++) {
digitalWrite(buzzer, HIGH);
delay(2) ;
digitalWrite(buzzer, LOW);
delay(2);
}
// 1 Sekunde Pause
delay(1000);
}
}
Mit diesem Modul können Sie verschiedene Töne erzeugen, indem Sie den passiven Piezo-Buzzer mit PWM-Signalen ansteuern. PWM-Signale sind spezielle elektrische Signale, die in verschiedenen Frequenzen gesendet werden können, um unterschiedliche Töne zu erzeugen. Der Buzzer kann Töne im Bereich von 1,5 kHz bis 2,5 kHz erzeugen. Er funktioniert mit einer Spannung von 3,3 V bis 5 V und ist klein und kompakt, mit Abmessungen von 18,5 x 15 mm. Dieses Modul ist ideal, wenn Sie akustische Signale oder Alarmtöne in Ihren Projekten benötigen, und lässt sich einfach einbinden.
Technische Daten | |
---|---|
Betriebsspannung | 3,3 V - 5 V |
Tonerzeugungsbereich | 1,5 kHz - 2,5 kHz |
Abmessungen | 18,5 x 15 mm |
Anschlussbelegung
Raspberry Pi | Sensor |
---|---|
GPIO 24 [Pin 18] | Signal |
3,3V [Pin 1] * | +V * |
GND [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.
Code-Beispiel
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.
from gpiozero import PWMOutputDevice
# Hier wird der Ausgangs-Pin deklariert, an dem der Buzzer angeschlossen ist.
buzzer = PWMOutputDevice(24, frequency=500, initial_value=0.5)
# Das Programm wartet auf die Eingabe einer neuen PWM-Frequenz vom Benutzer.
# Bis dahin wird der Buzzer mit der vorher eingegebenen Frequenz betrieben (Startwert 500Hz)
try:
while True:
print("----------------------------------------")
aktuelle_frequenz = buzzer.frequency
print(f"Aktuelle Frequenz: {aktuelle_frequenz:.0f}")
neue_frequenz = int(input("Bitte neue Frequenz eingeben (50-5000): "))
buzzer.frequency = neue_frequenz
# Aufräumarbeiten, nachdem das Programm beendet wurde
except KeyboardInterrupt:
buzzer.close()
print("Programm beendet")
Mit diesem Modul können Sie verschiedene Töne erzeugen, indem Sie den passiven Piezo-Buzzer mit PWM-Signalen ansteuern. PWM-Signale sind spezielle elektrische Signale, die in verschiedenen Frequenzen gesendet werden können, um unterschiedliche Töne zu erzeugen. Der Buzzer kann Töne im Bereich von 1,5 kHz bis 2,5 kHz erzeugen. Er funktioniert mit einer Spannung von 3,3 V bis 5 V und ist klein und kompakt, mit Abmessungen von 18,5 x 15 mm. Dieses Modul ist ideal, wenn Sie akustische Signale oder Alarmtöne in Ihren Projekten benötigen, und lässt sich einfach einbinden.
Technische Daten | |
---|---|
Betriebsspannung | 3,3 V - 5 V |
Tonerzeugungsbereich | 1,5 kHz - 2,5 kHz |
Abmessungen | 18,5 x 15 mm |
Anschlussbelegung
Micro:Bit | Sensor |
---|---|
Pin 0 | Signal |
3V | +V |
GND | GND |
Da dieser Sensor über PWM gesteuert wird muss dieser an Pin 0 des Micro:Bits angeschlossen werden.
Code-Beispiel
input.onButtonPressed(Button.A, function () {
music.playMelody("C F D G E A F B ", 500)
})
Beispielprogramm Download
Mit diesem Modul können Sie verschiedene Töne erzeugen, indem Sie den passiven Piezo-Buzzer mit PWM-Signalen ansteuern. PWM-Signale sind spezielle elektrische Signale, die in verschiedenen Frequenzen gesendet werden können, um unterschiedliche Töne zu erzeugen. Der Buzzer kann Töne im Bereich von 1,5 kHz bis 2,5 kHz erzeugen. Er funktioniert mit einer Spannung von 3,3 V bis 5 V und ist klein und kompakt, mit Abmessungen von 18,5 x 15 mm. Dieses Modul ist ideal, wenn Sie akustische Signale oder Alarmtöne in Ihren Projekten benötigen, und lässt sich einfach einbinden.
Technische Daten | |
---|---|
Betriebsspannung | 3,3 V - 5 V |
Tonerzeugungsbereich | 1,5 kHz - 2,5 kHz |
Abmessungen | 18,5 x 15 mm |
Anschlussbelegung
Raspberry Pi Pico | Sensor |
---|---|
GPIO15 | Signal |
- | +V |
GND | GND |
Code-Beispiel
Hierbei handelt es sich um ein Beispielprogramm, welches am Buzzer einen Song abspielt.
Um das folgende Codebeispiel auf Ihren Pico zu laden, empfehlen wir die Verwendung von der Thonny IDE. Sie müssen nur zunächst unter Run > Configure interpreter … > Interpreter > Which kind of interpreter should Thonny use for running your code? > MicroPython (Raspberry Pi Pico) auswählen.
Kopieren Sie den untenstehenden Code nun in Ihre IDE und klicken Sie auf Run.
# Bibliotheken laden
from machine import Pin, PWM
from utime import sleep
# Initialisierung von GPIO15 als PWM Pin
buzzer = PWM(Pin(15))
# Definierung der verschiedenen Tonlagen
tones = {
"B0": 31,
"C1": 33,
"CS1": 35,
"D1": 37,
"DS1": 39,
"E1": 41,
"F1": 44,
"FS1": 46,
"G1": 49,
"GS1": 52,
"A1": 55,
"AS1": 58,
"B1": 62,
"C2": 65,
"CS2": 69,
"D2": 73,
"DS2": 78,
"E2": 82,
"F2": 87,
"FS2": 93,
"G2": 98,
"GS2": 104,
"A2": 110,
"AS2": 117,
"B2": 123,
"C3": 131,
"CS3": 139,
"D3": 147,
"DS3": 156,
"E3": 165,
"F3": 175,
"FS3": 185,
"G3": 196,
"GS3": 208,
"A3": 220,
"AS3": 233,
"B3": 247,
"C4": 262,
"CS4": 277,
"D4": 294,
"DS4": 311,
"E4": 330,
"F4": 349,
"FS4": 370,
"G4": 392,
"GS4": 415,
"A4": 440,
"AS4": 466,
"B4": 494,
"C5": 523,
"CS5": 554,
"D5": 587,
"DS5": 622,
"E5": 659,
"F5": 698,
"FS5": 740,
"G5": 784,
"GS5": 831,
"A5": 880,
"AS5": 932,
"B5": 988,
"C6": 1047,
"CS6": 1109,
"D6": 1175,
"DS6": 1245,
"E6": 1319,
"F6": 1397,
"FS6": 1480,
"G6": 1568,
"GS6": 1661,
"A6": 1760,
"AS6": 1865,
"B6": 1976,
"C7": 2093,
"CS7": 2217,
"D7": 2349,
"DS7": 2489,
"E7": 2637,
"F7": 2794,
"FS7": 2960,
"G7": 3136,
"GS7": 3322,
"A7": 3520,
"AS7": 3729,
"B7": 3951,
"C8": 4186,
"CS8": 4435,
"D8": 4699,
"DS8": 4978
}
# Definierung des zu spielenden Songs in einer Liste
song = ["E5","G5","A5","P","E5","G5","B5","A5","P","E5","G5","A5","P","G5","E5"]
# Funktion zum Einstellen der auszugebenen Frequenz
def playtone(frequency):
buzzer.duty_u16(1000)
buzzer.freq(frequency)
# Funktion zum Ausschalten des Buzzers
def bequiet():
buzzer.duty_u16(0)
# Funktion zur Ausgabe des zu spielenden Songs
def playsong(mysong):
for i in range(len(mysong)):
if (mysong[i] == "P"):
bequiet()
else:
playtone(tones[mysong[i]])
sleep(0.3)
bequiet()
# Ausgabe des definierten Songs
playsong(song)