Musikwiedergabe per Fernbedienung steuern: Ein einfaches Arduino-Projekt
Komponenten und Materialien
- 1 × Arduino UNO
- 1 × Infrarot-Fernbedienung (beliebig)
- 1 × IR-Empfänger (z. B. VS1838B)
- 1 × Summer (Buzzer)
- 1 × LCD-Display 16×2 (weiß auf blau, z. B. Adafruit Standard)
- 1 × Drehpotentiometer (für LCD-Kontrast)
- 1 × Widerstand 220 Ω
- Steckbrett und Jumper-Kabel
Benötigte Software
- Arduino IDE
- Bibliotheken:
IRremote,NewTone,LiquidCrystal
Projektbeschreibung
Mit diesem Projekt können Sie Melodien über eine herkömmliche Infrarot-Fernbedienung abspielen. Der Arduino empfängt die IR-Codes, wählt die entsprechende Melodie aus und gibt sie über den Summer wieder. Gleichzeitig zeigt das LCD-Display die gespielten Noten an.
Funktionsweise
- Drücken Sie eine Zifferntaste (1–4) auf der Fernbedienung, um eine Melodie auszuwählen.
- Der Arduino spielt die Melodie über den Summer.
- Auf dem LCD erscheint der Name der gespielten Note (z. B. „Do“, „Re“, „Mi“).
- Mit der „Power“-Taste der Fernbedienung lässt sich die Wiedergabe jederzeit stoppen (Arduino-Reset).
Code-Struktur
Der Sketch nutzt die Bibliothek IRremote zum Dekodieren der Fernbedienungscodes. Jede Melodie ist als eigene Funktion implementiert (z. B. fur() für „Für Elise“, ode() für „Freude schöner Götterfunken“ usw.). Die Noten werden über Hilfsfunktionen wie nota_do(), nota_re() etc. erzeugt, die Frequenz und Dauer an NewTone übergeben.
Ein besonderes Feature ist die shut()-Funktion: Sie prüft während der Wiedergabe kontinuierlich, ob ein neuer IR-Code empfangen wurde. Wird der Code für die „Power“-Taste erkannt, führt ein Software-Reset (Reset_AVR()) den Arduino sofort zurück in den Startzustand.
Wichtige Code-Ausschnitte
// IR-Codes der Fernbedienung (Beispielwerte – müssen angepasst werden)
if (result == 12495) { melody_1(); } // Taste 1
else if (result == 6375) { melody_2(); } // Taste 2
else if (result == 31365) { melody_3(); } // Taste 3
else if (result == 4335) { melody_4(); } // Taste 4
// Beispiel einer Noten-Funktion
void nota_do(int duration, int pause) {
shut(); // Prüft auf Stopp-Befehl
lcd.setCursor(0, 0);
lcd.print("Do ");
NewTone(11, 262, duration); // Pin 11, Frequenz 262 Hz (C4)
delay(pause);
}
// Software-Reset per Watchdog
#include <avr/io.h>
#include <avr/wdt.h>
#define Reset_AVR() wdt_enable(WDTO_30MS); while(1) {}
Schaltplan
Der Schaltplan (Fritzing-Datei canzoni_con_tastiera_fQS3978roa.fzz) zeigt die Verdrahtung:
- IR-Empfänger: OUT an Pin 2, VCC an 5 V, GND an GND
- Summer: Plus an Pin 11, Minus an GND
- LCD: RS, EN, D4–D7 an Pins 9, 8, 7, 6, 5, 4; Kontrast über Potentiometer an V0
- Arduino wird über USB versorgt
Aufbau und Inbetriebnahme
- Bauteile gemäß Schaltplan verdrahten.
- Arduino IDE öffnen, Sketch hochladen.
- Seriellen Monitor öffnen (9600 Baud), um die empfangenen IR-Codes der eigenen Fernbedienung auszulesen.
- Die ausgelesenen Codes in die
if-Abfragen imloop()eintragen. - Fernbedienung testen – viel Spaß!
Hinweis: Die im Code enthaltenen IR-Codes (12495, 6375, 31365, 4335, -23971) stammen von der Fernbedienung des Autors. Sie müssen durch die Codes Ihrer eigenen Fernbedienung ersetzt werden (über den seriellen Monitor auslesbar).
Herstellungsprozess
- IR-Fernbedienungsbefehle auf Raspberry Pi ohne LIRC erfassen: Python UART-Ansatz
- Echtzeit-Gyroskop-Spiel mit Arduino Nano & MPU-6050
- ESP32-CAM Bewegungserkennungs-Kamera für Discord
- Arduino Digitaler Würfel: LCD-Würfel mit Zufallszahlen (1–6)
- 37-LED-Roulette-Spiel mit Arduino Nano bauen – Europäisches Layout
- Selbstbau TV-Fernbedienung: Arduino UNO, batteriebetrieben, 3D-gedrucktes Gehäuse
- Heimtemperatur weltweit überwachen: Arduino Cloud Integration mit TMP36
- ATtiny85 Mini-Arcade: Snake – Handheld OLED-Spielekonsole selbst bauen
- Tragbarer Entfernungsmesser – Arduino Nano DIY-Kit mit HC-SR04, 18650-Akku und 3D-gedrucktem Gehäuse
- Arduino-LED per Cortana und Bluetooth unter Windows 10 steuern