Generare toni
FunduinoUltimo aggiornamento il
Vom einzelnen Piepton bis zur Melodie mit dem passiven Lautsprecher
Aktive und passive Lautsprecher – ein kleiner Exkurs
Den Lautsprecher anschließen
So funktioniert der Befehl tone()
tone(8, 100); // Der Lautsprecher an Pin 8 wird mit der Tonhöhe "100" aktiviert delay(1000); // Pause von 1000 Millisekunden, also 1 Sekunde - der Lautsprecher bleibt so lange aktiv. noTone(8); // Der Lautsprecher an Pin 8 wird deaktiviert
Einfache Tonerzeugung
Programmcode – Einfache Tonerzeugung
// Im Setup werden keine Informationen benötigt.
// Die Spannungsausgabe für den Piezo-Lautsprecher legt der Arduino-Befehl "tone" automatisch fest.
void setup()
{
}
void loop()
{
tone(8, 100); // Im Hauptteil wird nun mit dem Befehl "tone(x, y)" ein Ton abgegeben.
delay(1000); // mit einer Dauer von 1 Sekunde
noTone(8); // Der Ton wird abgeschaltet
delay(1000); // Der Lautsprecher bleibt eine Sekunde aus
}Abwechselnde Tonhöhen erzeugen
Programmcode – Abwechselnde Tonhöhen
void setup()
{
}
void loop()
{
tone(8, 100);
delay(1000);
noTone(8); // An dieser Stelle geht der erste Ton aus.
tone(8, 200); // Der zweite Ton mit der Tonhöhe "200" ertönt.
delay(1000); // ... und zwar für eine Sekunde ...
noTone(8); // An dieser Stelle geht der zweite Ton aus und der Loop-Teil beginnt von vorn.
}Ton erzeugen durch Tastendruck
Programmcode – Ton durch Tastendruck
int Taster = 6;
int Tasterstatus = 0;
void setup()
{
pinMode(Taster, INPUT);
}
void loop()
{
Tasterstatus = digitalRead(Taster);
if (Tasterstatus == HIGH) // Wenn der Taster gedrückt ist ...
{
tone(8, 300); // ... spiele diesen Ton ...
delay(1000); // ... und zwar für eine Sekunde ...
noTone(8); // Ton abschalten
}
}Töne in Abhängigkeit von verschiedenen Tasten erzeugen
Programmcode – Zwei Taster, zwei Töne
int Taster1 = 6; // Taster 1 an Pin 6 angeschlossen
int Taster2 = 7; // Taster 2 an Pin 7 angeschlossen
int Tasterstatus1 = 0; // Variable, um den Status von Taster 1 zu speichern.
int Tasterstatus2 = 0; // Variable, um den Status von Taster 2 zu speichern.
void setup()
{
pinMode(Taster1, INPUT); // Taster 1 als Eingang festlegen
pinMode(Taster2, INPUT); // Taster 2 als Eingang festlegen
}
void loop()
{
Tasterstatus1 = digitalRead(Taster1); // Status von Taster 1 auslesen (HIGH oder LOW)
Tasterstatus2 = digitalRead(Taster2); // Status von Taster 2 auslesen (HIGH oder LOW)
if (Tasterstatus1 == HIGH) // Wenn Taster 1 gedrückt ist, dann ...
{
tone(8, 100); // Ausgabe eines Tons mit der Tonhöhe 100.
delay(1000); // mit der Dauer von einer Sekunde
noTone(8); // Ausschalten des Tons.
}
if (Tasterstatus2 == HIGH) // Wenn Taster 2 gedrückt ist, dann ...
{
tone(8, 200); // Ausgabe eines Tons mit der Tonhöhe 200.
delay(1000); // mit der Dauer von einer Sekunde
noTone(8); // Ausschalten des Tons.
}
}Melodien mit dem Arduino erzeugen
1 / 2
Programmcode – Noten aus pitches.h abspielen
#include "pitches.h"
void setup()
{
pinMode(8, OUTPUT); // Lautsprecher an Pin 8
}
void loop()
{
tone(8, NOTE_C4, 1000); // An Pin 8 wird die Note C4 für 1000 ms gespielt
delay(3000); // Der Sketch pausiert 3 Sekunden. Da der Ton nur 1 Sekunde dauert, bleiben danach noch zwei Sekunden Stille.
tone(8, NOTE_G3, 1000); // An Pin 8 wird die Note G3 für 1000 ms gespielt
delay(3000); // Der Sketch pausiert 3 Sekunden. Da der Ton nur 1 Sekunde dauert, bleiben danach noch zwei Sekunden Stille.
}Valuta le istruzioni