 |
Piezo Buzzer |
Ich selbst war auch auf der Suche nach einer Anleitung wie man auf einfachste weise einen Piezo Buzzer zum laufen bekommt. Bei meinen Google Recherchen bin ich leider meistens nur auf viel zu komplexe und umständliche Lösungen gestoßen. Deshalb will ich euch im folgenden zeigen wie es mir letztendlich am einfachsten schien.
Die Funktion mit der wir arbeiten wollen heißt
tone() und wird standardmäßig von der Arduino IDE unterstützt. Sie generiert eine
Rechteckschwingung mit der als Parameter angegebenen Frequenz.
Außerdem kann die Länge des Tons als Parameter mitgegeben werden. Wird dies nicht gemacht wird solange bis die Funktion
notone() ausgeführt ein Ton ausgegeben. Das Signal, welches durch die Funktion tone() an einem ebenfalls als Parameter definierten Pin anliegt kann ein Piezo Buzzer verwenden um damit einen Ton zu erzeugen. Damit das Signal auch wirklich korrekt ankommt muss ein PWM Pin verwendet werden.
Hinweis: Es kann immer nur 1 Ton gleichzeitig mit dem Arduino Board ausgegeben werden
Für alle AVR Boards gilt:
Minimale Frequenz: 31 Hz
Maximale Frequenz: 65535 Hz
Syntax
tone ( pin, freuquenz, dauer );
Der erste Parameter Pin sollte klar sein. Hier soll der Pin stehen, den ihr am Plus-Pol des Piezo Buzzers angeschlossen habt stehen.
Der zweite Prameter Frequenz sollte eine Zahl zwischen 31 und 65535 sein. Diese Angabe entspricht der Einheit Herz.
Der dritte Parameter Dauer entspricht der anzahl der Millisekunden, die der Ton ausgegeben werden soll.
Als Beispiel habe ich hier das Super Mario Intro verwendet. Für fast alle Melodien finden sich im Internet zahlreiche Hilfen wenn ihr zum Beispiel "Super Mario Song Frequencies" oder ähnliches bei Google sucht.
Beispiel:
tone(piezoPin, 660, 100) ;
delay(150);
tone(piezoPin, 660, 100) ;
delay(300);
tone(piezoPin, 660, 100) ;
delay(300);
tone(piezoPin, 510, 100) ;
delay(100);
tone(piezoPin, 660, 100) ;
delay(300);
tone(piezoPin, 770, 100) ;
delay(550);
tone(piezoPin, 380, 100) ;
delay(575);
noTone(piezoPin);