Töne erzeugen

Im PXT (Makecode)-Editor sind Töne unter der Schaltfläche „Musik“ zu finden. Dort werden sie auf dem Block „Klingelton (Hz)“ bzw. „ring tone (Hz)“ vorgehalten. Will man keine Note, sondern einen Ton ausgeben, muss auf das Notenfeld geklickt und ein Zahlenwert eingegeben, wobei Werte im Hunderterbereich tiefen, solche im Tausenderbereich hohen Tönen entsprechen.

Hier eine Beispielcodierung, bei der nach Betätigen des Knopfs A für eine halbe Sekunde ein Ton von 1000 Hz ausgegeben wird und danach dauerhaft einer mit 1 Hz, was unhörbar ist.

Statt des Klingeltons können Noten (Töne mit einer bestimmten Frequenz) ausgegeben werden, deren Auswahl mit Hilfe einer Klaviatur möglich ist. Dazu muss wie oben auf das Notenfeld geklickt werden. Die Notenlänge kann zwischen 1 und 1/16 Takt variiert werden.

Hier das Beispiel für eine Folge von zwei Noten die nach dem Druck auf Taste A gespielt werden:

Wer über Grundkenntnisse in der Notenschrift verfügt, dem wird es mit diesen Werkzeugen sicher gelingen, einfache Melodien zusammenzustellen. Beim Programmieren empfiehlt es sich, mit einem Klick auf das Lautsprechersymbol unterhalb des Simulators, die Audio-Ausgabe auf dem PC so lange stumm zu schalten.


Ein Piezo Lautsprecher und ein Knopf, wie sie auf dem Calliope mini verbaut sind, können auf einfache Weise auch an einem Arduino eingerichtet werden. Dazu wird der Pluspol des Lautsprechers (beispielsweise) mit Pin 11 und der Minuspol mit GND verbunden.

In Entsprechung dazu ist der Taster mit (beispielsweise) Pin 4 und GND verbunden

Zur Programmierung eines Tons dient der Befehl „tone(x, y);“, wobei x den Pin angibt und y die Tonhöhe. Der Befehl „noTone(x,y);“ schaltet den Ton ab.

Soll der Ton wie beim Calliope mini durch Knopfdruck ausgelöst werden, ergibt sich folgende Programmierung:

void setup(){
pinMode(4, INPUT_PULLUP);
}
void loop(){
if (digitalRead(4) == LOW)
{
tone(11, 1000);
delay(500);
noTone(11);
}
} 

Und hier der dazu passende grafische Programmcode, erstellt mit Ardublock. Eine Anleitung, wie Ardublock in die Arduino IDE eingebunden werden kann, findet sich hier als Download.


Das Breadboard sowie die Bauteile (Taster und Lautsprecher) gibt es im Funduino-Shop.