DFPlayer Mini und IR Remote

Hallihallo, ich hab da mal eine Frage zum DFPlayer Mini und der IR Remote von DF Robot.
Ich will eigendlich nur nen ganz simplen Sketch, weiß aber nicht wirklich wie, obwohl ich schon ne menge Beispiele ausprobiert habe.
Es soll eine bestimmtte Mp3 spielen wenn ich 1 auf der FB drücke und auf 2 einen anderen.

Ich benutze nen Nano und hab ihn Seriell geschalten und die Bibliotheken hab ich auch drauf.
In einem Beispiel hab ich eine Mp3 schon abspielen können, aber nix anderes.

Kann mir da jemand helfen bitte?

Falls du hier etwas länger auf zielführende Antworten warten musst, eine Mitteilung, damit du ahnst, woran es liegen könnte:
Pastebin Dinger steckt sich hier wohl kaum einer in den Mund.

Außerdem werden die irgendwann gelöscht, und damit ist dieser Thread dann zerstört.
Das wollen "wir" so nicht.

Meinst du damit dass ich lieber den Code posten sollte?

#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
#include <IRremote.h>
int RECV_PIN = 12;
SoftwareSerial mySerial(9, 10); // RX, TX
#define code1  16582903 
#define code2  16615543
IRrecv irrecv(RECV_PIN);
decode_results results;

//
void setup () {
Serial.begin (9600);
mySerial.begin (9600);
mp3_set_serial (mySerial); //set softwareSerial for DFPlayer-mini mp3 module 
delay(1);  //wait 1ms for mp3 module to set volume
mp3_set_volume (15);
 irrecv.enableIRIn();  // Start the receiver
}


//

void loop () {        
if (irrecv.decode(&results)) {
   unsigned int value = results.value;
   switch(value) {
case code1:
mp3_play (3);
delay (100000);
break;

case code2:
mp3_play (1);
 break;
}
}
}

Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Dann ist er auch auf mobilen Geräten besser lesbar.
Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

#define code1  16582903

#define code2  16615543
//.....
unsigned int value = results.value;

Wie soll 16582903 in ein unsigned int passen?

Bei einem ARM oder ESP vielleicht, aber doch nicht bei einem AVR.

Beweis:

Serial.println(sizeof(unsigned int));
Serial.println(sizeof(16582903));

Ja keine ahnung, da gehts schon los. Ich habe in nem anderen Sketch 15 LEDs mit der FB belegt zum AN und AUS schalten, und da hats geklappt.
Ehrlich gesagt hab ich davon 0 Ahnung und fummel hier schon ne woche daran rum und komme da nicht weiter.

#include <IRremote.h>
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>

int RECV_PIN = 2;
int led1 = 3;           //Flux
int led2 = 4;           //Tree
int led3 = 5;           //Time
int led4 = 6;           //Decke

int led5 = 7;           //Tacho

int led6 = 8;           //88mph
int led7 = 9;            //Notaus

int led8 = 10;           //Vorne
int led9 = 11;           //Hinten

int led10 = 12;           //Bremse

int led11 = 14;           //Tür links
int led12 = 15;           //Tür rechts
int led13 = 16;           //Innenbeleuchtung
int led14 = 17;           //Motorhaube

int led15 = 18;           //Fluxband
int led16 = 19;           //Blinker vorn

int itsONled[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
/* the initial state of LEDs is OFF (zero) 
the first zero must remain zero but you can 
change the others to 1's if you want a certain
led to light when the board is powered */
#define code1  16582903 
#define code2  16615543 
#define code3  16599223 
#define code4  16591063
#define code5  16623703
#define code6  16607383
#define code7  16586983
#define code8  16619623
#define power  16580863
#define code9  16603303

IRrecv irrecv(RECV_PIN);
decode_results results;


void setup()
{
  Serial.begin(9600);   // you can comment this line
  irrecv.enableIRIn();  // Start the receiver
  mp3_set_serial (Serial);  //set Serial for DFPlayer-mini mp3 module 
  delay(1);  //wait 1ms for mp3 module to set volume
  mp3_set_volume (15);
  
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(led8, OUTPUT);
  pinMode(led9, OUTPUT);
  pinMode(led10, OUTPUT);
  pinMode(led11, OUTPUT);
  pinMode(led12, OUTPUT);
  pinMode(led13, OUTPUT);
  pinMode(led14, OUTPUT);
  pinMode(led15, OUTPUT);
  pinMode(led16, OUTPUT);
  digitalWrite(led15, LOW);
}


void loop() {
  if (irrecv.decode(&results)) {
    unsigned int value = results.value;
    switch(value) {

case code1:                         //Zeitleitung
if(itsONled[1] == 1) {
digitalWrite(led1, LOW);
itsONled[1] = 0;
if(itsONled[2] == 1) 
digitalWrite(led2, LOW);
itsONled[2] = 0;
if(itsONled[3] == 1) 
digitalWrite(led3, LOW);
itsONled[3] = 0;
if(itsONled[4] == 1) 
digitalWrite(led4, LOW);
itsONled[4] = 0;
} else {
digitalWrite(led1, HIGH);
itsONled[1] = 1;
digitalWrite(led2, HIGH);
itsONled[2] = 1;
digitalWrite(led3, HIGH);
itsONled[3] = 1;
digitalWrite(led4, HIGH);
itsONled[4] = 1;
}
break; 

case code2:                         //Tacho
if(itsONled[5] == 1) {
digitalWrite(led5, LOW);
itsONled[5] = 0;
} else {
digitalWrite(led5, HIGH);
itsONled[5] = 1;
}
break; 

case code3:                         //88mph
if(itsONled[6] == 1) {
digitalWrite(led6, LOW);
itsONled[6] = 0;
} else {
digitalWrite(led6, HIGH);
itsONled[6] = 1;
}
break; 

case code4:                         //Notstop
if(itsONled[7] == 1) {
digitalWrite(led7, LOW);
itsONled[7] = 0;
} else {
digitalWrite(led7, HIGH);
itsONled[7] = 1;
}
break; 


case code5:                         //Scheinwerfer
if(itsONled[8] == 1) {
digitalWrite(led8, LOW);
itsONled[8] = 0;
if(itsONled[9] == 1)
digitalWrite(led9, LOW);
itsONled[9] = 0;
} else {
digitalWrite(led8, HIGH);
itsONled[8] = 1;
digitalWrite(led9, HIGH);
itsONled[9] = 1;
}
break; 

case code6:                   //Bremse, Blinker
if(itsONled[10] == 1) {
digitalWrite(led10, LOW);
itsONled[10] = 0;
if(itsONled[16] == 1)
digitalWrite(led16, LOW);
itsONled[16] = 0;
} else {
digitalWrite(led10, HIGH);
itsONled[10] = 1;
digitalWrite(led16, HIGH);
itsONled[16] = 1;
}
break;  

case code7:                         //Beleuchtung
if(itsONled[11] == 1) {
digitalWrite(led11, LOW);
itsONled[11] = 0;
if(itsONled[12] == 1) 
digitalWrite(led12, LOW);
itsONled[12] = 0;
if(itsONled[13] == 1) 
digitalWrite(led13, LOW);
itsONled[13] = 0;
if(itsONled[14] == 1) 
digitalWrite(led14, LOW);
itsONled[14] = 0;
} else {
digitalWrite(led11, HIGH);
itsONled[11] = 1;
digitalWrite(led12, HIGH);
itsONled[12] = 1;
digitalWrite(led13, HIGH);
itsONled[13] = 1;
digitalWrite(led14, HIGH);
itsONled[14] = 1;
}
break; 

case code8:                         //Fluxband
if(itsONled[15] == 1) {
digitalWrite(led15, LOW);
itsONled[15] = 0;
} else {
digitalWrite(led15, HIGH);
itsONled[15] = 1;
}
break;

case code9:
mp3_play (1);
break;

case power:
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
digitalWrite(led9, LOW);
digitalWrite(led10, LOW);
digitalWrite(led11, LOW);
digitalWrite(led12, LOW);
digitalWrite(led13, LOW);
digitalWrite(led14, LOW);
digitalWrite(led15, LOW);
digitalWrite(led16, LOW);
    
    }
    Serial.println(value); // you can comment this line
    irrecv.resume(); // Receive the next value
  }
}

salvate:
Ja keine ahnung, da gehts schon los. Ich habe in nem anderen Sketch 15 LEDs mit der FB belegt zum AN und AUS schalten, und da hats geklappt.
Ehrlich gesagt hab ich davon 0 Ahnung und fummel hier schon ne woche daran rum und komme da nicht weiter.

Dann wäre es wohl an der Zeit, einige Grundlagen zu lernen, sonst wird sich das nie ändern.
Hier könntest Du anfangen.

Gruß Tommy

Und mit welchen Pins (SoftwareSerial) steuerst du den DFPlayer ?
Davon sehe ich nix.

Warum siehst du dir das nicht im Beispiel zur Library an, da wird das doch gut beschrieben.

welches Beispiel meinst du genau?

@Tommy56: Sorry, ich will nich anstößig sein aber dies ist mein erstes und letztes Projekt und will eigendlich nur fertig werden. Würde dafür sogar Bezahlen wenns mir einer schreiben würde. :wink:

In jeder Library gibt es Beispiele, die eine Verwendung beschreiben.
Sieh dir das ruhig mal an.

Hab ich schon, mache die ganze zeit eigendlich nix anderes und durchfilze Google nach irgendwelchen anhaldspunkten, aber ich krich das einfach nich auf die Reie... :confused:

Du hast doch davon sicher Ahnung wie sau oder? Würdest du mir da nich nen vernünftigen Sketch schreiben mit dem was er machen soll? Muss auch nich umsonnst sein. BBBBIIITTTEEE :wink:

Wenn jemand nur mal nen kleines Loch zugeschweißt haben will wendet er sich auch an mich und lernt es nich selbst. :wink:

Und wieso hast du zwei verschiedene Sketche gepostet. Einer mit dem DFplayer und einer ohne den DFplayer ?
Da wird man nicht schlau draus.

... und Löcher stümpere ich schon alleine zu - wofür hat man das ganze Geraffel denn gekauft?

Soll heißen: Wer Sich ein Schweißgerät zulegt, wird wohl vorhaben, damit zu schweißen.
Unwahrscheinlicher ist es doch wirklich, daß dieses Schweißgerät von Gott und der Welt benutzt werden soll, um MEINE Löcher zu zu schweißen, oder?

Toll, wenn man Jemanden mit Werkzeug/Maschinen in Seinem Bekanntenkreis aufweisen kann - auch wird Einem Da wohl auch geholfen - aber wohl nicht, weil Er das Werkzeug/die Maschinen hat, sondern weil wir uns kennen und ich mit Seinem Zeug 'spielen darf' (ggf. unter Aufsicht und Anleitung g).

MfG

@salvate
Hast du denn einen Sketch wo alles drin ist und kannst du beschreiben, was da geht und was nicht ?
Dann poste den hier.

Ja hier, die LEDs gehen alle, aber die mp3 will nicht abspielen.
Es soll einfach nur ne mp3 abgespielt werden wenn ich die 9 auf der Fernbedienung drücke.

#include <IRremote.h>
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>

int RECV_PIN = 2;
int led1 = 3;           //Flux
int led2 = 4;           //Tree
int led3 = 5;           //Time
int led4 = 6;           //Decke

int led5 = 7;           //Tacho

int led6 = 8;           //88mph
int led7 = 9;            //Notaus

int led8 = 10;           //Vorne
int led9 = 11;           //Hinten

int led10 = 12;           //Bremse

int led11 = 14;           //Tür links
int led12 = 15;           //Tür rechts
int led13 = 16;           //Innenbeleuchtung
int led14 = 17;           //Motorhaube

int led15 = 18;           //Fluxband
int led16 = 19;           //Blinker vorn

int itsONled[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
/* the initial state of LEDs is OFF (zero) 
the first zero must remain zero but you can 
change the others to 1's if you want a certain
led to light when the board is powered */
#define code1  16582903 
#define code2  16615543 
#define code3  16599223 
#define code4  16591063
#define code5  16623703
#define code6  16607383
#define code7  16586983
#define code8  16619623
#define power  16580863
#define code9  16603303

IRrecv irrecv(RECV_PIN);
decode_results results;
SoftwareSerial softSerial(30,31);  // RX,TX

void setup()
{
  Serial.begin(9600);   // you can comment this line
  irrecv.enableIRIn();  // Start the receiver
  mp3_set_serial (Serial);  //set Serial for DFPlayer-mini mp3 module 
  delay(1);  //wait 1ms for mp3 module to set volume
  mp3_set_volume (20);
  
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(led8, OUTPUT);
  pinMode(led9, OUTPUT);
  pinMode(led10, OUTPUT);
  pinMode(led11, OUTPUT);
  pinMode(led12, OUTPUT);
  pinMode(led13, OUTPUT);
  pinMode(led14, OUTPUT);
  pinMode(led15, OUTPUT);
  pinMode(led16, OUTPUT);
}


void loop() {
  if (irrecv.decode(&results)) {
    unsigned int value = results.value;
    switch(value) {

case code1:                         //Zeitleitung
if(itsONled[1] == 1) {
digitalWrite(led1, LOW);
itsONled[1] = 0;
if(itsONled[2] == 1) 
digitalWrite(led2, LOW);
itsONled[2] = 0;
if(itsONled[3] == 1) 
digitalWrite(led3, LOW);
itsONled[3] = 0;
if(itsONled[4] == 1) 
digitalWrite(led4, LOW);
itsONled[4] = 0;
} else {
digitalWrite(led1, HIGH);
itsONled[1] = 1;
digitalWrite(led2, HIGH);
itsONled[2] = 1;
digitalWrite(led3, HIGH);
itsONled[3] = 1;
digitalWrite(led4, HIGH);
itsONled[4] = 1;
}
break; 

case code2:                         //Tacho
if(itsONled[5] == 1) {
digitalWrite(led5, LOW);
itsONled[5] = 0;
} else {
digitalWrite(led5, HIGH);
itsONled[5] = 1;
}
break; 

case code3:                         //88mph
if(itsONled[6] == 1) {
digitalWrite(led6, LOW);
itsONled[6] = 0;
} else {
digitalWrite(led6, HIGH);
itsONled[6] = 1;
}
break; 

case code4:                         //Notstop
if(itsONled[7] == 1) {
digitalWrite(led7, LOW);
itsONled[7] = 0;
} else {
digitalWrite(led7, HIGH);
itsONled[7] = 1;
}
break; 


case code5:                         //Scheinwerfer
if(itsONled[8] == 1) {
digitalWrite(led8, LOW);
itsONled[8] = 0;
if(itsONled[9] == 1)
digitalWrite(led9, LOW);
itsONled[9] = 0;
} else {
digitalWrite(led8, HIGH);
itsONled[8] = 1;
digitalWrite(led9, HIGH);
itsONled[9] = 1;
}
break; 

case code6:                   //Bremse, Blinker
if(itsONled[10] == 1) {
digitalWrite(led10, LOW);
itsONled[10] = 0;
if(itsONled[16] == 1)
digitalWrite(led16, LOW);
itsONled[16] = 0;
} else {
digitalWrite(led10, HIGH);
itsONled[10] = 1;
digitalWrite(led16, HIGH);
itsONled[16] = 1;
}
break;  

case code7:                         //Beleuchtung
if(itsONled[11] == 1) {
digitalWrite(led11, LOW);
itsONled[11] = 0;
if(itsONled[12] == 1) 
digitalWrite(led12, LOW);
itsONled[12] = 0;
if(itsONled[13] == 1) 
digitalWrite(led13, LOW);
itsONled[13] = 0;
if(itsONled[14] == 1) 
digitalWrite(led14, LOW);
itsONled[14] = 0;
} else {
digitalWrite(led11, HIGH);
itsONled[11] = 1;
digitalWrite(led12, HIGH);
itsONled[12] = 1;
digitalWrite(led13, HIGH);
itsONled[13] = 1;
digitalWrite(led14, HIGH);
itsONled[14] = 1;
}
break; 

case code8:                         //Fluxband
if(itsONled[15] == 1) {
digitalWrite(led15, LOW);
itsONled[15] = 0;
} else {
digitalWrite(led15, HIGH);
itsONled[15] = 1;
}
break;

case code9:
mp3_play (1);

break;

case power:
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
digitalWrite(led9, LOW);
digitalWrite(led10, LOW);
digitalWrite(led11, LOW);
digitalWrite(led12, LOW);
digitalWrite(led13, LOW);
digitalWrite(led14, LOW);
digitalWrite(led15, LOW);
digitalWrite(led16, LOW);
    
    }
    Serial.println(value); // you can comment this line
    irrecv.resume(); // Receive the next value
  }
}

Hi

Sicher, daß die MP3 nicht gespielt wird, oder fehlt's einfach an Lautstärke?
Wenn die MP3 NICHT gespielt wird - wird der Player korrekt angesprochen?

Davon ab ist Dein Sketch sehr mühsam zu lesen.

MfG

Ne, kommt nix... Volume ist auf 20 und es ließt sich so mühsam weils das für mich war ihn zusammen zu flicken.
Wenn du ihn vereinfachen würdest wäre ich Dir sehr dankbar. :wink:

weils das für mich war ihn zusammen zu flicken.

Und es ist dir nicht möglich den von mir in #4 benannten Fehler mit dem unsigned int auszubügeln?

Unabhängig von dem dir mehrfach gezeigten Fehler, kannst du doch den DFplayer auch manuell über die Tasteneingänge direkt steuern. Geht das denn ?

@combie: weil ich nich weiß was du damit meinst oder wie ich des beheben soll. Ich weiß nichmal was des bedeutet, des war in nem Beispiel ausn Inet drinne und hab des einfach übernommen.
Wenn ich des lösche zeigt der mir irgend nen Fehler.
Sorry dass ich keine Ahnung habe, deswegen frage ich ja.

@HotSystem: Ja des funktioniert, aber da ich des über Fernbedienung ansteuern möchte bringt mir des nix.