Oke
Wel first this is the working code i already have, in this example there are 3 mp3 bank, but normaly its up to 10 or 11 banks, i think its to much to paste here, anyway the old code:
#include "LiquidCrystal_I2C.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(2, 3); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#define butUp 12
#define butDown 11
#define butP 10
#define butM 9
#define btns A0
void changeMenu();
void dispMenu();
void mp3Bank1();
void mp3Bank2();
void mp3Bank3();
char menu = 0x01;
char set1 = 0x00, set2 = 0x00 , set3 = 0x00;
boolean t_butUp, t_butDown, t_butP, t_butM;
void setup() {
mySoftwareSerial.begin(9600);
if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3.
while(true);
}
myDFPlayer.setTimeOut(500); //Set serial communictaion time out 500ms
//----Set volume----
myDFPlayer.volume(30); //Set volume value (0~30).
//----Set different EQ----
myDFPlayer.EQ(DFPLAYER_EQ_ROCK);
//----Set device we use SD as default----
myDFPlayer.outputDevice(DFPLAYER_DEVICE_FLASH);
for (char i=9; i<13; i++){
}
t_butUp = 0x00;
t_butDown = 0x00;
t_butP = 0x00;
t_butM = 0x00;
}
void loop() {
changeMenu();
dispMenu();
}
//Functies
void changeMenu(){
if(digitalRead(butUp) == 0x00){ // UP
t_butUp = 0x01;
}
if(digitalRead(butDown) == 0x00){ //DOWN
t_butDown = 0x01;
}
if(digitalRead(butUp) && t_butUp){
t_butUp = 0x00;
lcd.clear();
menu++;
if(menu > 0x04){
menu = 0x01;
}
}
if(digitalRead(butDown) && t_butDown){
t_butDown = 0x00;
lcd.clear();
menu--;
if(menu < 0x01){
menu = 0x04;
}
}
}
void dispMenu(){
switch(menu){
case 0x01:
mp3Bank1(); //Funzione controllo led1
break;
case 0x02:
mp3Bank2(); //Funzione controllo led2
break;
case 0x03:
mp3Bank3(); //Funzione controllo led2
break;
}
}
/*begin mp3 bank1*/
void mp3Bank1(){
lcd.setCursor(0,1);
lcd.print("mp3 bank 1");
val = analogRead(btns);
if (val >= 400 && val <= 445)
{
myDFPlayer.playFolder(01, 1);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 1");
}
else if (val >= 445 && val <= 480)
{
myDFPlayer.playFolder(01, 2);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 2");
}
else if (val >= 480 && val <= 520)
{
myDFPlayer.playFolder(01, 3);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 3");
}
else if (val >= 520 && val <= 570)
{
myDFPlayer.playFolder(01, 4);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 4");
}
else if (val >= 570 && val <= 630)
{
myDFPlayer.playFolder(01, 5);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 5");
}
else if (val >= 630 && val <= 700)
{
myDFPlayer.playFolder(01, 6);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 6");
}
else if (val >= 700 && val <= 800)
{
myDFPlayer.playFolder(01, 7);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 7");
}
else if (val >= 800 && val <= 900)
{
myDFPlayer.playFolder(01, 8);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 8");
if(digitalRead(butP) == 0x00){
t_butP = 0x01;
}
if(digitalRead(butM) == 0x00){
t_butM = 0x01;
}
if(digitalRead(butP) && t_butP){
t_butP = 0x00;
set3++;
if(set3 > 2){
set3 = 0x01;
}
}
}
}
/*begin mp3 bank2*/
void mp3Bank2(){
lcd.setCursor(0,1);
lcd.print("mp3 bank 2");
val = analogRead(btns);
if (val >= 400 && val <= 445)
{
myDFPlayer.playFolder(02, 1);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 1");
}
else if (val >= 445 && val <= 480)
{
myDFPlayer.playFolder(02, 2);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 2");
}
else if (val >= 480 && val <= 520)
{
myDFPlayer.playFolder(02, 3);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 3");
}
else if (val >= 520 && val <= 570)
{
myDFPlayer.playFolder(02, 4);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 4");
}
else if (val >= 570 && val <= 630)
{
myDFPlayer.playFolder(02, 5);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 5");
}
else if (val >= 630 && val <= 700)
{
myDFPlayer.playFolder(02, 6);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 6");
}
else if (val >= 700 && val <= 800)
{
myDFPlayer.playFolder(02, 7);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 7");
}
else if (val >= 800 && val <= 900)
{
myDFPlayer.playFolder(02, 8);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 8");
if(digitalRead(butP) == 0x00){
t_butP = 0x01;
}
if(digitalRead(butM) == 0x00){
t_butM = 0x01;
}
if(digitalRead(butP) && t_butP){
t_butP = 0x00;
set3++;
if(set3 > 2){
set3 = 0x01;
}
}
}
}
/*Begin mp3 bank3*/
void mp3Bank3(){
lcd.setCursor(0,1);
lcd.print("mp3 bank 3");
val = analogRead(btns);
if (val >= 400 && val <= 445)
{
myDFPlayer.playFolder(03, 1);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 1");
}
else if (val >= 445 && val <= 480)
{
myDFPlayer.playFolder(03, 2);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 2");
}
else if (val >= 480 && val <= 520)
{
myDFPlayer.playFolder(03, 3);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 3");
}
else if (val >= 520 && val <= 570)
{
myDFPlayer.playFolder(03, 4);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 4");
}
else if (val >= 570 && val <= 630)
{
myDFPlayer.playFolder(03, 5);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 5");
}
else if (val >= 630 && val <= 700)
{
myDFPlayer.playFolder(03, 6);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 6");
}
else if (val >= 700 && val <= 800)
{
myDFPlayer.playFolder(03, 7);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 7");
}
else if (val >= 800 && val <= 900)
{
myDFPlayer.playFolder(03, 8);
lcd.setCursor(0, 4);
lcd.print("Playing: Sound 8");
if(digitalRead(butP) == 0x00){
t_butP = 0x01;
}
if(digitalRead(butM) == 0x00){
t_butM = 0x01;
}
if(digitalRead(butP) && t_butP){
t_butP = 0x00;
set3++;
if(set3 > 2){
set3 = 0x01;
}
}
}
}