Projekt B06 - Töne und Melodien erzeugen
Grundlagen aus B01-B05 verstanden
C4 = 262 Hz
D4 = 294 Hz
E4 = 330 Hz
F4 = 349 Hz
G4 = 392 Hz
A4 = 440 Hz (Kammerton)
H4 = 494 Hz
C5 = 523 Hz
Ein passiver Piezo wandelt elektrische Schwingungen in Schall um.
tone(pin, freq) erzeugt den TonnoTone(pin) stoppt den TonAktiver Buzzer: Erzeugt nur einen festen Ton bei HIGH. Wir nutzen passiv!
// Schritt 1: Einen Ton erzeugen
const int BUZZER_PIN = 9;
void setup() {
pinMode(BUZZER_PIN, OUTPUT);
// A4 (Kammerton) fuer 1 Sekunde spielen
tone(BUZZER_PIN, 440); // 440 Hz = A4
delay(1000);
noTone(BUZZER_PIN); // Ton aus
Serial.begin(9600);
Serial.println("Fertig!");
}
void loop() {
// Leer
}Du solltest einen klaren Ton bei 440 Hz hören (A4, der Kammerton zum Stimmen).
// Schritt 2: C-Dur Tonleiter
const int BUZZER_PIN = 9;
// Noten als Konstanten
#define NOTE_C4 262
#define NOTE_D4 294
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_G4 392
#define NOTE_A4 440
#define NOTE_B4 494
#define NOTE_C5 523
int tonleiter[] = {NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4,
NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5};
void setup() {
pinMode(BUZZER_PIN, OUTPUT);
for (int i = 0; i < 8; i++) {
tone(BUZZER_PIN, tonleiter[i], 300); // 300ms
delay(350); // Kurze Pause zwischen Noten
}
}
void loop() { }// Fertige Version: "Alle meine Entchen"
const int BUZZER_PIN = 9;
#define C4 262
#define D4 294
#define E4 330
#define F4 349
#define G4 392
#define A4 440
#define P 0 // Pause
int melodie[] = {C4,D4,E4,F4, G4,G4, A4,A4,A4,A4, G4,P};
int dauer[] = {300,300,300,300, 600,600, 300,300,300,300, 1200,300};
void setup() {
pinMode(BUZZER_PIN, OUTPUT);
for (int i = 0; i < 12; i++) {
if (melodie[i] == P) {
noTone(BUZZER_PIN);
} else {
tone(BUZZER_PIN, melodie[i], dauer[i]);
}
delay(dauer[i] + 30);
}
}
void loop() { }Du kannst jetzt Töne und Melodien erzeugen
Töne erzeugen
Frequenztabelle nutzen
Sequenzen abspielen
B07: LCD 1602 Display - Text anzeigen mit I2C