MP3-Player mit Arduino Nano und IR-Fernbedienung

In diesem Beitrag möchte ich dir zeigen, wie du einen MP3-Player inkl. IR-Fernbedienung (Infrarot) am Arduino Nano programmierst.

MP3 Shield & IR Receivermodul am Arduino Nano
MP3 Shield & IR Receivermodul am Arduino Nano

Im Beitrag Arduino UNO Mini mit MP3 Shield habe ich dir bereits gezeigt, wie das MP3-Shield vom Typ MP3-TF-16P-V3 bzw. MH2024K-24SS am Arduino UNO Mini LE programmiert.

Benötigte Ressourcen für die Programmierung des MP3-Players mit IR-Fernbedienung

Für den Nachbau dieses Projektes benötigst du:

Es gibt mehrere Ausführungen von IR-Fernbedienungen auf zbsp. ebay.de zu kaufen, in meinem Fall verwende ich eine welche gleich die Funktionstasten Play, Pause, Vorwärts, Rückwärts, Stopp für ein Audioabspielgerät enthält.

IR Fernbedienung für den Arduino und Raspberry Pi
IR Fernbedienung für den Arduino und Raspberry Pi

Aufbau der Schaltung am Arduino Nano mit MP3-Player Shield und IR-Fernbedienung

Für dieses kleine Projekt verwende ich den Arduino Nano, dieser ist dem Arduino UNO vom Microchip gleich, jedoch deutlich kompakter und ohne zusätzliche, externe Stromversorgung über Jackadapter.

Von der Firma Cytron gibt es den Maker Nano welchen ich dir bereits im Beitrag Vorstellung des Maker Nano von Cytron vorgestellt habe, dieser hat statt einer Mini-USB eine Micro-USB Buchse sowie einen ATmega328P verbaut und somit etwas stärker als der übliche Arduino Nano.

Die Schaltung aus dem bereits genannten Beispiel zum MP3 Shield wird um das IR-Receivermodul erweitert, ansonsten sind die Pins geblieben.

BauteilArduino Nano
MP3 Shield
VCC5V
GNDGND
TXdigitaler Pin D10
RXdigitaler Pin D11 über 1 kOhm Widerstand
SPK1Lautsprecher +
SPK2Lautsprecher –
IR Receiver
+5V
--GND
Sdigitaler Pin D5
Anschluss der Bauteile für einen einfachen MP3 Player mit IR Fernbedienung
Aufbau der Schaltung - MP3 Shield & IR Empfänger am Arduino Nano V3
Aufbau der Schaltung – MP3 Shield & IR Empfänger am Arduino Nano V3

Programmieren von einem MP3-Player mit IR-Fernbedienung am Arduino Nano

Benötigte Bibliotheken für dieses Projekt

Für dieses Projekt benötigst du:

Auslesen der IR-Fernbedienung

Wie man eine Infrarotfernbedienung am Arduino ausliest, habe ich dir bereits im Beitrag Arduino Lektion 20: IR Fernbedienung auslesen gezeigt. In meinem Fall haben sich folgende Signale ergeben:

FunktionWert
Rückwärts0x44
Vorwärts0x40
Play / Pause0x43
Lautstärke +0x15
Lautstärke – 0x7
Werte der Tasten auf der IR Fernbedienung

Diese Werte können natürlich von deinen abweichen und daher würde ich dir empfehlen deine Fernbedienung selber auszulesen.

#include <IRremote.h>

void setup() {
  Serial.begin(9600); 
  IrReceiver.begin(5, ENABLE_LED_FEEDBACK);
}
 
void loop(){
  if (IrReceiver.decode()) {
        IrReceiver.printIRResultShort(&Serial);
        if (IrReceiver.decodedIRData.protocol == UNKNOWN) {
            IrReceiver.printIRResultRawFormatted(&Serial, true);
        }
        Serial.println();
        IrReceiver.resume(); // Enable receiving of the next value
    }
}

Steuern des MP3 Shields per IR-Fernbedienung

Nachdem wir nun die Funktionstasten zum Steuern des MP3 Moduls ausgelesen haben, können wir diese in ein Sketch integrieren.

Als Grundgerüst nutze ich das Beispiel „GetStartet“ von DFRobot.

#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
#include <IRremote.h>

// RX auf Pin D10 & TX auf D12
SoftwareSerial mySoftwareSerial(10, 12);
DFRobotDFPlayerMini player;

bool actionPlay = false;

const int PREVIOUS = 0x44;
const int NEXT = 0x40;
const int PLAY_PAUSE = 0x43;
const int VOLUME_UP = 0x15;
const int VOLUME_DOWN = 0x7;

void setup() {
  mySoftwareSerial.begin(9600);
  Serial.begin(115200);

  IrReceiver.begin(5, ENABLE_LED_FEEDBACK);
  
  delay(50);
  if (!player.begin(mySoftwareSerial)) {
    Serial.println("Fehler beim Aufbau der seriellen Verbindung!");
  } else {
    Serial.println("Verbindung zum DFPlayer Mini hergestellt.");
    player.volume(10);
  }
}

void loop() {
  if (IrReceiver.decode()) {
    int command = IrReceiver.decodedIRData.command;
    switch (command) {
      case PREVIOUS:
        player.previous();
        break;
      case NEXT:
        player.next();
        break;
      case PLAY_PAUSE:
        actionPlay = !actionPlay;
        if (actionPlay) {
          player.pause();
        } else {
          player.play();
        }
        break;
      case VOLUME_UP:
        player.volumeUp();
        break;
      case VOLUME_DOWN:
        player.volumeDown();
        break;
      default:
        break;
    }
    IrReceiver.resume();
  }
}

Im nachfolgenden Beispiel zeige ich dir nun wie man mit der IR Fernbedienung das MP3 Shield steuern kann. Die Musik habe ich aus der YouTube Audiolibrary entnommen, wo du auch freie Musik findest.

simple MP3 Player with MAKER Nano & IR Receiver modul
Dieses Video ansehen auf YouTube.

Ausblick

Nun habe ich dir gezeigt wie man einen einfachen MP3-Player programmieren kann, nun könnte man noch mit ein paar wenigen Bauteilen visuelle Effekte zum Takt der Musik erzeugen lassen oder die Lautstärke mit einer LED-Bar visualisieren.

Mein nächstes Projekt wird nun auf dieses aufbauen und ich werde dort speziell auf diese zusätzlichen Features eingehen.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.