Arduino Mikrocontroller Tutorials - Input/Output

Passiven Buzzer (Summer) ansteuern

Schaltplan aktiver Buzzer (Summer) Umrechnung Frequenz in eine HIGH/LOW Ansteuerung

Im Gegensatz zu einem aktiven Buzzer, der mit seiner eingebauten Elektronik die Ansteuerfrequenz selbst erzeugt, muss beim passiven Buzzer die Ansteuerung außerhalb erzeugt werden. Statt +5V auf den Ausgang legen wie beim aktiven Buzzer muss der Ausgang also schnell ein- und ausgeschaltet werden.
Der Tonabgabe des passiven Buzzers funktioniert übrigens über ein Piezokristall welches auf eine kleine Lautsprecherplatte geklebt wird. Immer wenn das Piezo bestromt wird verbiegt es sich ein wenig und mit ihm die Lautsprecherplatte. Stromlos federt die Lautsprecherplatte dann wieder zurück. Das Tastverhältnis, also das Verhältnis von HIGH und LOW je Periode sind 50% (halbe Zeit an, halbe Zeit aus).
Im Programm wird zunächst im einmal zu durchlaufenden setup() die Frequenzvorgabe umgerechnet in die entsprechende HIGH und LOW Zeit. Im loop() wird der Summer dann mit der berechneten Zeit angesteuert.

Zum Ansteuern eines Summers gibt es beim Arduino auch einen eigenen Befehl: tone(Pin, frequenz, Dauer) Die Umrechnung der Frequenz, und die abwechselnde Bestromung des Ausgangs werden dann im Hintergrund ausgeführt. Diese Funktion arbeitet auch mit Interrupts und Timer, so dass der µC zeitgleich zur Ansteuerung weitere Aufgaben übernehmen kann.

Schaltung und Programmcode

Schaltplan aktiver Buzzer (Summer)
// Vorgabe der Ansteuerfrequenz in Hz int frequenz = 0; int t; void setup() { // Pin2 als Ausgang konfigurieren pinMode(2, OUTPUT); // Ansteuerzeit in µs berechnen t = 1000000/frequenz / 2; } void loop() { digitalWrite(2, HIGH); delayMicroseconds(t); digitalWrite(2, LOW); delayMicroseconds(t); }