Moin erstmal...
Ich bin an verzweifeln... bin ich wirklich so blöd?
Ich hab recht wenig erfahrung was Mikrocontroller angeht und bin schon froh, wenn ich ein bestehendes Programm so umgeschrieben bekomm das es am ende so läuft wie ich das will (ansatzweise)
Solltet ihr euch meiner erbahmen, danke ich euch jetzt schon mal im vorraus.
Ausgangspunkt: Ich hab hier einen Arduino Nano, eine 4x4 Matrix Tastatur und einen DFPlayer Mini liegen,
Hab das ganze auch ans laufen bekommen, heist wenn ich Taste 1 auf der tastatur drücke, spielt er MP3_file_1 ab und so weiter... mit * und ' kann ichs Leiser bzw. Lauter drehen... und mit 0 das ganze stoppen...
#include <Keypad.h>
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
#define ledA_pin 13
#define ledB_pin 14 //A0
#define ledC_pin 15 //A1
#define ledD_pin 16 //A2
bool ledA_state, ledB_state, ledC_state, ledD_state;// Variablendeklaration (global)
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
const byte ROWS = 4; //four rows
const byte COLS = 4; //three columns
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
Serial.begin(9600);
mySoftwareSerial.begin(9600);
pinMode(ledA_pin, OUTPUT);
pinMode(ledB_pin, OUTPUT);
pinMode(ledC_pin, OUTPUT);
pinMode(ledD_pin, OUTPUT);
myDFPlayer.begin(mySoftwareSerial);
myDFPlayer.setTimeOut(500); //Set serial communictaion time out 500ms
//----Set volume----
myDFPlayer.volume(25); //Set volume value (0~30).
myDFPlayer.volumeUp(); //Volume Up
myDFPlayer.volumeDown(); //Volume Down
//----Set different EQ----
myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
// myDFPlayer.EQ(DFPLAYER_EQ_POP);
// myDFPlayer.EQ(DFPLAYER_EQ_ROCK);
// myDFPlayer.EQ(DFPLAYER_EQ_JAZZ);
// myDFPlayer.EQ(DFPLAYER_EQ_CLASSIC);
// myDFPlayer.EQ(DFPLAYER_EQ_BASS);
//----Set device we use SD as default----
// myDFPlayer.outputDevice(DFPLAYER_DEVICE_U_DISK);
myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
// myDFPlayer.outputDevice(DFPLAYER_DEVICE_AUX);
// myDFPlayer.outputDevice(DFPLAYER_DEVICE_SLEEP);
// myDFPlayer.outputDevice(DFPLAYER_DEVICE_FLASH);
/*
//----Mp3 play----
myDFPlayer.next(); //Play next mp3
delay(1000);
myDFPlayer.previous(); //Play previous mp3
delay(1000);
myDFPlayer.play(1); //Play the first mp3
delay(1000);
myDFPlayer.loop(1); //Loop the first mp3
delay(1000);
myDFPlayer.pause(); //pause the mp3
delay(1000);
myDFPlayer.start(); //start the mp3 from the pause
delay(1000);
myDFPlayer.playFolder(15, 4); //play specific mp3 in SD:/15/004.mp3; Folder Name(1~99); File Name(1~255)
delay(1000);
myDFPlayer.enableLoopAll(); //loop all mp3 files.
delay(1000);
myDFPlayer.disableLoopAll(); //stop loop all mp3 files.
delay(1000);
myDFPlayer.playMp3Folder(4); //play specific mp3 in SD:/MP3/0004.mp3; File Name(0~65535)
delay(1000);
myDFPlayer.advertise(3); //advertise specific mp3 in SD:/ADVERT/0003.mp3; File Name(0~65535)
delay(1000);
myDFPlayer.stopAdvertise(); //stop advertise
delay(1000);
myDFPlayer.playLargeFolder(2, 999); //play specific mp3 in SD:/02/004.mp3; Folder Name(1~10); File Name(1~1000)
delay(1000);
myDFPlayer.loopFolder(5); //loop all mp3 files in folder SD:/05.
delay(1000);
myDFPlayer.randomAll(); //Random play all the mp3.
delay(1000);
myDFPlayer.enableLoop(); //enable loop.
delay(1000);
myDFPlayer.disableLoop(); //disable loop.
delay(1000);
*/
}
void loop(){
char key = keypad.getKey();
if (key){
switch(key) {
case '0' : Serial.println("TEST");
myDFPlayer.stop();
break;
case '1' : Serial.println("HALLO");
myDFPlayer.play(1);
break;
case '2' : Serial.println("WELT");
myDFPlayer.play(2);
break;
case '3' : Serial.println("TEST");
myDFPlayer.play(3);
break;
case '4' : Serial.println("TEST");
myDFPlayer.play(4);
break;
case '5' : Serial.println("TEST");
myDFPlayer.play(5);
break;
case '6' : Serial.println("TEST");
myDFPlayer.play(6);
break;
case '7' : Serial.println("TEST");
myDFPlayer.play(7);
break;
case '8' : Serial.println("TEST");
myDFPlayer.play(8);
break;
case '9' : Serial.println("TEST");
myDFPlayer.play(9);
break;
case 'A' : Serial.println("TEST");
{ digitalWrite(ledA_pin,HIGH);
digitalWrite(ledB_pin,LOW);
digitalWrite(ledC_pin,LOW);
digitalWrite(ledD_pin,LOW);}
break;
case 'B' : Serial.println("TEST");
{ digitalWrite(ledA_pin,LOW);
digitalWrite(ledB_pin,HIGH);
digitalWrite(ledC_pin,LOW);
digitalWrite(ledD_pin,LOW);}
break;
case 'C' : Serial.println("TEST");
{ digitalWrite(ledA_pin,LOW);
digitalWrite(ledB_pin,LOW);
digitalWrite(ledC_pin,HIGH);
digitalWrite(ledD_pin,LOW);}
break;
case 'D' : Serial.println("TEST");
{ digitalWrite(ledA_pin,LOW);
digitalWrite(ledB_pin,LOW);
digitalWrite(ledC_pin,LOW);
digitalWrite(ledD_pin,HIGH);}
break;
case '*' : Serial.println("TEST");
myDFPlayer.volumeUp();
break;
case '#' : Serial.println("TEST");
myDFPlayer.volumeDown();
break;
}
}
}
MP3TEST_mehrere_varianten.ino (5.29 KB)
tastatur_f_r_MP3.ino (5.65 KB)