Das PWM Signal, das ein einem der digitalen Ausgänge D3, D5, D6, D9, D10, D11 erzeugt werden kann, lässt sich mit einem Lautsprecher auch hörbar machen. Ändert man den Abstand zwischen den einzelnen Pulsen, so kann man die Frequenz des Signals (Anzahl der Pule pro Sekunde) und somit die Höhe eines Tons verändern. Dazu wird die Funktion tone() bereitgestellt mit der man diese Fequenz einstellen kann. Die Pulsbreite beträgt dabei immer 50%.
Aufbau und Material
- 1 Piezo Lautsprecher
- 1 Widerstand 100
Programmierbeispiel
In diesem Beispiel werden hintereinander drei Töne mit aufsteigender Tonhöhe mit unterschiedlicher Dauer ausgegeben.
void setup()
{
pinMode(10, OUTPUT); // Pin 10 als digitaler Ausgang
}
void loop()
{
tone(10,40); // erzeugen eines PWM-Signals mit der Frequenz 40 an Pin 10
delay(1000); // warten für eine Sekunde
tone(10,100); // erzeugen eines PWM-Signals mit der Frequenz 100 an Pin 10
delay(2000); // warten für zwei Sekunden
tone(10,800); // erzeugen eines PWM-Signals mit der Frequenz 800 an Pin 10
delay(4000); // warten für vier Sekunden
}
Erklärungen zu diesem Programmierbeispiel
pinMode(pin, mode)
Mit dieser Funktion wird das Verhalten eines der 14 I/O PINs festgelegt.
pin: 0, ..., 13
mode: OUTPUT, INPUT, INPUT_PULLUP
tone(pin, frequenz)
Mit dieser Funktion kann ein PWM-Signal zum Ausgeben von Tönen generiert werden.
pin: D3, D5, D6, D9, D10, D11
frequenz: 31, ..., 20000
delay(value)
Soll der Programmablauf an einer Stelle unterbrochen werden, so wird die Funktion delay() aufgerufen.
value: ganzzahliger Wert (Wartezeit in Millisekunden)