Licht & Sound zum Geburtstag: DIY Arduino-Projekt
Benötigte Bauteile
- 1× Arduino UNO
- 1× Breadboard
- 3× LED (rot, blau, weiß – Farben frei wählbar)
- 1× Lautsprecher (0,25 W, 8 Ω; ggf. Kabel anlöten)
- Jumper-Kabel
- 3× 220 Ω Widerstand (für LEDs)
Benötigtes Werkzeug
- Lötkolben (falls Lautsprecherkabel angelötet werden müssen)
Software
- Arduino IDE
Projektbeschreibung
Dieses Projekt spielt die Melodie „Happy Birthday“ über einen kleinen Lautsprecher, während drei LEDs in zufälligen Farben aufleuchten. Es eignet sich hervorragend als Einsteigerprojekt, um die Grundlagen von tone(), digitalen Ausgängen und Timing mit dem Arduino zu erlernen.
Schritt-für-Schritt-Anleitung
Schritt 1: Material bereitlegen
Sammeln Sie alle Bauteile. Falls der Lautsprecher keine Kabel hat, löten Sie Jumper-Kabel an die Anschlüsse.
Schritt 2: LEDs auf dem Breadboard platzieren
Stecken Sie die drei LEDs nebeneinander in das Breadboard. Achten Sie darauf, Anode (langes Bein) und Kathode (kurzes Bein) unterscheiden zu können.
Schritt 3: Anoden mit Arduino-Pins verbinden
Verbinden Sie die Anoden über Jumper-Kabel mit folgenden digitalen Pins:
- Rote LED → Pin 9
- Blaue LED → Pin 10
- Weiße LED → Pin 11
Schritt 4: Kathoden über Widerstände auf GND legen
Verbinden Sie jede Kathode mit einem 220 Ω Widerstand. Die andere Seite der Widerstände geht an die Ground-Schiene (–) des Breadboards. Verbinden Sie diese Schiene mit dem GND-Pin des Arduino.
Schritt 5: Lautsprecher anschließen
- Minus-Pol des Lautsprechers → Ground-Schiene des Breadboards
- Plus-Pol des Lautsprechers → Arduino Pin 3 (PWM-fähig)
Code
Das Projekt besteht aus zwei Dateien: dem Hauptsketch und der pitches.h-Bibliothek für Notenfrequenzen.
Hauptsketch: Happy Birthday Lights + Sounds
// Pin-Zuordnung: ROT=9, BLAU=10, WEISS=11, SPEAKER=3
#include "pitches.h"
// Melodie: Happy Birthday
int melody[] = {
NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_F4, NOTE_E4,
NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_G4, NOTE_F4,
NOTE_C4, NOTE_C4, NOTE_C5, NOTE_A4, NOTE_F4, NOTE_E4,
NOTE_D4, NOTE_AS4, NOTE_AS4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_F4
};
// Notendauern: 4=Viertel, 8=Achtel, 2=Halbe
int noteDurations[] = {
8, 8, 4, 4, 4, 2,
8, 8, 4, 4, 4, 2,
8, 8, 4, 4, 4, 4, 4,
8, 8, 4, 4, 4, 2
};
void setup() {
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
for (int thisNote = 0; thisNote < 25; thisNote++) {
// Drei zufällige LEDs ansteuern
int randomLight1 = random(9, 12);
int randomLight2 = random(9, 12);
int randomLight3 = random(9, 12);
digitalWrite(randomLight1, HIGH);
digitalWrite(randomLight2, HIGH);
digitalWrite(randomLight3, LOW);
// Ton berechnen und abspielen
int noteDuration = 1130 / noteDurations[thisNote];
tone(3, melody[thisNote], noteDuration);
// Pause zwischen den Noten
int pause = noteDuration * 1.275;
delay(pause);
noTone(3);
}
// Alle LEDs ausschalten nach dem Lied
delay(3000);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
void loop() {
// Keine Wiederholung nötig
}
pitches.h – Notendefinitionen
Diese Datei definiert die Frequenzen für alle Klaviertasten (C0 bis D#8). Sie muss im selben Ordner wie der Sketch liegen oder über #include "pitches.h" eingebunden werden. Der Inhalt ist Standard und entspricht der Arduino-Beispielbibliothek.
Schaltplan
Die Datei happy_birthday_lights__sounds_I16bf0SBDq.fzz (Fritzing) zeigt den kompletten Aufbau.
Tipps & Erweiterungen
- Ersetzen Sie die zufällige LED-Steuerung durch eine festgelegte Farbfolge passend zur Melodie.
- Fügen Sie einen Taster hinzu, um das Lied auf Knopfdruck zu starten.
- Verwenden Sie einen Piezo-Summer statt des Lautsprechers für einfachere Montage.
- Erweitern Sie das Projekt mit einem OLED-Display, das den Liedtext anzeigt.
Herstellungsprozess
- Titan-Drähte: Typen, Eigenschaften und industrielle Anwendungen
- Leiteranschluss-Konventionen in Stromlaufplänen: Klare Anleitung
- Netzwerke vs. Busse: Klare Leitlinien zur Verkabelung in digitalen Systemen
- LED-Helligkeit per PWM und Taster am Arduino Mega steuern
- DHT11 Temperatur- & Feuchtesensor mit LED-Anzeige & Piezo-Summer
- GPS-Datenlogger mit räumlicher Analyse auf Azure IoT Hub
- Arduino Temperatur- & Feuchtelogger mit DHT11 & Ethernet Shield
- DIY Guitar Speed Pick & Stomp Pedal – 3D-gedruckter motorisierter Plektrum
- Armaturenbrett-Symbole verstehen: Warnleuchten, Farben & Bedeutung
- 50 Jahre Präzision feiern: Metal Cutting Corporation wird ein halbes Jahrhundert alt