Star Wars Sound mit Buzzer Modul
Einen Ton erzeugen, mit dem Buzzer Modul, für den Arduino Nano, geht recht einfach. Dazu verbinden wir das Buzzer Modul mit dem Nano. Ground auf Ground und das Signal vom Buzzer Modul auf Pin 8. Das Ganze sieht dann wie folgt aus. Ihr könnt auch ein fertiges Modul verwenden, z.B. von AZ-Delivery.

Nach dem wir nun alles verbunden haben, laden wir den Sketch hoch. Im Sketch werden zuerst die Töne defeniert und in zwei Sektionen unterteilt. Dazu haben wir die Möglichkeit, je nach Tonlage, zwei unterschiedliche LEDs aufplingen zulassen und dem ganzen noch mehr Style zu verleihen. Diese zwei LEDs werden über die Pins 3 und 4 angeschlossen, diese sind kein muss, sondern rein optional.
#include <arduino.h>
// Töne defenieren
const int c = 261;
const int d = 294;
const int e = 329;
const int f = 349;
const int g = 391;
const int gS = 415;
const int a = 440;
const int aS = 455;
const int b = 466;
const int cH = 523;
const int cSH = 554;
const int dH = 587;
const int dSH = 622;
const int eH = 659;
const int fH = 698;
const int fSH = 740;
const int gH = 784;
const int gSH = 830;
const int aH = 880;
const int buzzerPin = 8;
const int ledPin1 = 2;
const int ledPin2 = 3;
int counter = 0;
void setup()
{
//Setup Pin Mode für Ton und LEDs
pinMode(buzzerPin, OUTPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
}
void loop()
{
//Spiele erste Sektion
firstSection();
//Spiele zweite Sektion
secondSection();
beep(f, 250);
beep(gS, 500);
beep(f, 350);
beep(a, 125);
beep(cH, 500);
beep(a, 375);
beep(cH, 125);
beep(eH, 650);
delay(500);
//Wiederhole erste Sektion
secondSection();
beep(f, 250);
beep(gS, 500);
beep(f, 375);
beep(cH, 125);
beep(a, 500);
beep(f, 375);
beep(cH, 125);
beep(a, 650);
delay(650);
}
void beep(int note, int duration)
{
//Spiele den Ton für den BuzzerPin
tone(buzzerPin, note, duration);
//Spielen Sie je nach Wert des Zählers unterschiedliche LEDs ab
if(counter % 2 == 0)
{
digitalWrite(ledPin1, HIGH);
delay(duration);
digitalWrite(ledPin1, LOW);
}else
{
digitalWrite(ledPin2, HIGH);
delay(duration);
digitalWrite(ledPin2, LOW);
}
//Stoppe den Ton für den BuzzerPin
noTone(buzzerPin);
delay(50);
//Inkrementalzähler
counter++;
}
void firstSection()
{
beep(a, 500);
beep(a, 500);
beep(a, 500);
beep(f, 350);
beep(cH, 150);
beep(a, 500);
beep(f, 350);
beep(cH, 150);
beep(a, 650);
delay(500);
beep(eH, 500);
beep(eH, 500);
beep(eH, 500);
beep(fH, 350);
beep(cH, 150);
beep(gS, 500);
beep(f, 350);
beep(cH, 150);
beep(a, 650);
delay(500);
}
void secondSection()
{
beep(aH, 500);
beep(a, 300);
beep(a, 150);
beep(aH, 500);
beep(gSH, 325);
beep(gH, 175);
beep(fSH, 125);
beep(fH, 125);
beep(fSH, 250);
delay(325);
beep(aS, 250);
beep(dSH, 500);
beep(dH, 325);
beep(cSH, 175);
beep(cH, 125);
beep(b, 125);
beep(cH, 250);
delay(350);
}
Viel Spaß beim probieren und zaubern von neuen Melodien.