Passiven Buzzer (Summer) ansteuern
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
// 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);
}