Piezo Summer (Buzzer) praxisnah erklärt: Vom einfachen Beep bis zur Melodie

Der Piezo Effekt beim Piezo Summer

Das ist ein vollwertiger Auszug aus dem Buch Elektronik und Heimautomation DIY.

Der Piezoeffekt (von altgriechisch „piezein“: drücken) wurde 1880 von den Brüdern Jaque und Pierre Curie entdeckt. Sie fanden bei Versuchen mit Turmalinkristallen heraus, dass bei mechanischer Verformung der Kristalle, eine elektrische Ladung auf der Kristalloberfläche entsteht. Die Menge der elektrischen Ladung verhält sich proportional zur mechanischen Beanspruchung.

Durch das Anlegen einer Spannung lassen sich piezoelekrische Materialien elastisch verformen und man nennt das den inversen Piezoeffekt. Der industrielle Durchbruch für Bauteile mit dem Piezo Effekt kam mit der Herstellung von piezoelektrischen Keramiken.

Wie funktioniert der inverse Piezo Effekt?

Nehmen wir als Beispiel den Siliziumdioxid Kristall SiO2 das aus einem Silizium und zwei Sauerstoff Ionen besteht. Zur Vereinfachung werden zwei benachbarte Sauerstoff Ionen (negativ geladen) durch einen schwarzen Kreis dargestellt und das Silizium (positive geladen) als roter Kreis. Durch die Verbindung der Ionen ist dieser Kristall nach aussen elektrisch neutral.

Wird jetzt eine Spannung angelegt, dann verformt sich der Kristall und führt eine mechanische Schwingung aus. Je höher die Spannung ist, desto grösser ist die Schwingung vom Kristall. Wenn man die Spannung mit unterschiedlichen Frequenzen ein- und ausschaltet, so kann man damit Töne erzeugen. 

Buzzer atomarer Aufbau
SiO2 elektrisch neutral
Buzzer atomarer Aufbau unter Spannung
SiO2 an Spannung gelegt

Kompression

Der Piezo Summer (Buzzer) Aufbau

Es gibt zwei Arten vom Piezo Summer. Den aktiven und den passiven Buzzer. Der aktive Buzzer hat einen Oszillator eingebaut und er gibt einen Ton ab, sobald er an eine Spannung gehängt wird. Der passive Buzzer kann eine etwas kleinere Baugrösse haben und ist auch billiger, da ein paar Elektronik Teile bei der Produktion eingespart werden können. 

Zu erkennen sind sie meisten dadurch, dass man unten am passiven Buzzer die Elektronik sehen kann und der aktive abgedichtet ist. Der aktive Buzzer hat meistens noch einen weissen Kleber obendrauf, aber um ganz sicherzugehen, legt den Buzzer an eine Spannung, wenn er losgeht ist es der aktive. Wir werden aber hier nur den aktiven Buzzer verwenden, da er sich sehr einfach Programmieren lässt und man ihm einfach eine kleine Melodie entlocken kann.

Buzzer Bilder

Praktischen Beispiel mit einem Arduino UNO

Buzzer Arduino Uno Aufbau
Hinweiss Icon

Hinweis

Der 100 Ω Widerstand an VCC (+) ist optional aber damit kann man die Lautstärke etwas reduzieren. Wenn man einen ESP verwendet und den Buzzer an 3,3 Volt anschliesst ist der Buzzer automatisch etwas leiser. 

Hier findet ihr das benötigte Material!

Produkt Amazon
5 Stk. KY-012 aktive Piezo Buzzer Module shopping_cart Bei Amazon kaufen
Arduino UNO R4 Minima shopping_cart Bei Amazon kaufen

Alle Links in dieser Tabelle sind Amazon Affiliate Links.

				
					/*
Project:  Simpler Buzzer Ton Test
Author:   Thomas Edlinger for www.edistechlab.com
Date:     Created 04.01.2021
Version:  V1.0
*/

int buzzerPin = 11;

void setup() {
  digitalWrite(buzzerPin, OUTPUT);
}

void loop() {
  tone(buzzerPin, 523, 1000);
  delay(1000);
  noTone(buzzerPin);
  delay(1000);
}
				
			

In diesem kurzen Sketch lernen wir zwei Befehle kennen: einen zum Erzeugen eines Tons und einen zum Beenden des Tons.

Tone erzeugen: tone(pin, frequency, duration);

Mit dem Befehl tone() können wir einen Ton über den Piezo-Buzzer ausgeben. Dabei müssen wir drei Parameter angeben:

  • Pin – Der digitale Pin, an dem der Buzzer angeschlossen ist.
  • Frequenz (in Hertz) – Bestimmt die Tonhöhe.
  • Dauer (optional, in Millisekunden) – Gibt an, wie lange der Ton abgespielt wird.

Während der Ton abgespielt wird, muss das Programm warten, bevor es fortgesetzt wird. Das erledigen wir mit dem delay();-Befehl.

Ton stoppen: noTone(pin);

Mit dem Befehl noTone() können wir den aktuellen Ton ausschalten.

Wichtig: Bevor ein neuer Ton abgespielt werden kann, sollte noTone() aufgerufen werden, um sicherzustellen, dass der vorherige Ton beendet wurde.

Eine Buzzer Melodie spielen

Wie bereits erwähnt, lässt sich mit dem Buzzer leicht eine Melodie abspielen. Da wir im tone()-Befehl eine Frequenz angeben, müssen wir nur wissen, welche Note welcher Frequenz entspricht – das wird mit #define NOTE_xx festgelegt.

Anschließend erstellen wir zwei Arrays:

  • Eines für die Tonhöhen, die gespielt werden sollen.
  • Eines für die Notenlängen.

Als Beispiel habe ich den Happy Birthday Song eingebaut – einfach die /* ... */ entfernen und die erste Melodie auskommentieren.

Die Notenlänge berechnet sich beispielsweise für eine Viertelnote als 1000 / 4 (1 Sekunde / 4). Für die Pause zwischen zwei Noten wird die Notenlänge plus 30 % verwendet.

Den Sketch findet ihr auf Github.

Der Sketch auf Github

Github Logo

★☆★ Wenn ihr den Kanal unterstützen wollt über ★☆★

oder über

Vielen Dank im Voraus, Euer Edi.