LBotics.at

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)