music Maker MP3 shield : musicPlayer.playingMusic is true bu

Adafruit Ethernet, Motor, Proto, Wave, Datalogger, GPS Shields - etc!

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
siroptinmar
 
Posts: 2
Joined: Thu Jun 02, 2022 9:07 am

music Maker MP3 shield : musicPlayer.playingMusic is true bu

Post by siroptinmar »

Hi there.
Can't find where the problem is with this.

I've a switch case and a state value to define which case and which sound to play.
So i use the startPlayingFile and the while(musicPlayer.playingMusic) to make some leds blinking.

The problem is that the sounds don't play randomly. Sometimes the sound in case 2 and sometime in case x. This is not all the time the same. It's random problem.
So i've tried to softReset in the beginning of each case and i've tried begin() too in each case.
The startPlayingFile is true because the stuff inside the while loop is running. But no sound (i've checked the volume), and no ending (startPlayingFile never false).
I've also checked each case independently (state = 1, state = 2 etc.) and all case are Ok, but when it's running from the beginning, some case (randomly) are not really playing the file.

Here's my code : this is 23 cases (same construct, just delay or some stuff inside the while loop is changing)

All electronics are checked and OK. No problem here. Just a playing problem ... sometimes and not always at the same point.
Thanks.

Code: Select all

// include SPI, MP3 and SD libraries
#include <SPI.h>
#include <Adafruit_VS1053.h>
#include <SD.h>


// These are the pins used for the breakout example
#define BREAKOUT_RESET  9      // VS1053 reset pin (output)
#define BREAKOUT_CS     10     // VS1053 chip select pin (output)
#define BREAKOUT_DCS    8      // VS1053 Data/command select pin (output)
// These are the pins used for the music maker shield
#define SHIELD_RESET  -1      // VS1053 reset pin (unused!)
#define SHIELD_CS     7      // VS1053 chip select pin (output)
#define SHIELD_DCS    6      // VS1053 Data/command select pin (output)

// These are common pins between breakout and shield
#define CARDCS 4     // Card chip select pin
// DREQ should be an Int pin, see http://arduino.cc/en/Reference/attachInterrupt
#define DREQ 3       // VS1053 Data request, ideally an Interrupt pin

Adafruit_VS1053_FilePlayer musicPlayer = 
  // create breakout-example object!
  //Adafruit_VS1053_FilePlayer(BREAKOUT_RESET, BREAKOUT_CS, BREAKOUT_DCS, DREQ, CARDCS);
  // create shield-example object!
  Adafruit_VS1053_FilePlayer(SHIELD_RESET, SHIELD_CS, SHIELD_DCS, DREQ, CARDCS);
  
bool flagInit = false;
int state = 0;
bool wasPlayed = false;
bool blinked = false;

//conf the INs
byte button01 = 22;
byte button02 = 24;
byte button03 = 26;
byte button04 = 28;
byte button05 = 30;
byte button06 = 32;
byte button07 = 34;
byte button08 = 36;
byte button09 = 38;
byte button10 = 40;
byte button11 = 42;
byte button12 = 44;
byte button13 = 46;
byte button14 = 48;
byte button15 = 18;


//conf the OUTs
byte led01 = 23;
byte led02 = 25;
byte led03 = 27;
byte led04 = 29;
byte led05 = 31;
byte led06 = 33;
byte led07 = 35;
byte led08 = 37;
byte led09 = 39;
byte led10 = 41;
byte led11 = 43;
byte led12 = 45;
byte led13 = 47;
byte led14 = 49;
byte led15 = 19;

byte led = 0;
byte button = 0;
byte prevButton  = 0;
byte prevLed = 0;
void setup() {
  
    if (! musicPlayer.begin()) { // initialise the music player
        Serial.println(F("Couldn't find VS1053, do you have the right pins defined?"));
        while (1);
    }
  
    for(int i=9; i<=24; i++){
            pinMode((i*2 +1), OUTPUT);
            pinMode((i*2), INPUT);
    }
    pinMode (53, INPUT_PULLUP);
  
    Serial.begin(9600);
    Serial.println("Adafruit VS1053 Simple Test");
    
    Serial.println(F("VS1053 found"));
  
    if (!SD.begin(CARDCS)) {
        Serial.println(F("SD failed, or not present"));
        while (1);  // don't do anything more
    }
    state = 0;
    musicPlayer.setVolume(1,1);
    musicPlayer.useInterrupt(VS1053_FILEPLAYER_PIN_INT);  // DREQ int
    
    initScenario();
}

void loop() {
    switch (state) {
        case 0:
            // statements
            Serial.println("CASE0");
            //musicPlayer.begin();
            led = led03;
            button = button03;
            if(digitalRead(button15) == LOW){
              musicPlayer.playFullFile("/50_pro.mp3");
            }
            musicPlayer.startPlayingFile("/01_sta.mp3");
            delay(23000);
            blinked = true;
            while (musicPlayer.playingMusic) {
                ledBlink(led);
            }
            blinked = true;
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state = 1;
                    //wasPlayed = false;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;
        
        case 1:
            // statements
            Serial.println("CASE1");
            musicPlayer.begin();
            prevLed = led03;
            prevButton = button03;
            led = led02;
            button = button02;
            blinked = true;
            
            //audio protagoniste
            musicPlayer.startPlayingFile("/02_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/03_sta.mp3");
            delay(13000);
            while (musicPlayer.playingMusic) {
                ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state = 2;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;
        case 2:
            // statements
            Serial.println("CASE2");
            musicPlayer.begin();
            prevLed = led02;
            prevButton = button02;
            led = led05;
            button = button05;
            blinked = true;
            
            //audio protagoniste
            musicPlayer.startPlayingFile("/04_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                    
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            
            //audio operatrice
            musicPlayer.startPlayingFile("/05_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                //ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state = 3;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;
        case 3:
            // statements
            Serial.println("CASE3");
            musicPlayer.begin();
            prevLed = led05;
            prevButton = button05;
            led = led02;
            button = button02;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/06_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/07_sta.mp3");
            delay(5000);
            while (musicPlayer.playingMusic) {
                //ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =4;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;
        case 4:
            // statements
            Serial.println("CASE4");
            musicPlayer.begin();
            prevLed = led02;
            prevButton = button02;
            led = led03;
            button = button03;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/08_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/09_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                //ledBlink(led);
            }
            
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =5;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;
        case 5:
            // statements
            Serial.println("CASE5");
            musicPlayer.begin();
            prevLed = led03;
            prevButton = button03;
            led = led12;
            button = button12;
            blinked = true;
                //audio protagoniste
            musicPlayer.startPlayingFile("/10_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
                //audio operatrice
            musicPlayer.startPlayingFile("/11_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                ledBlink(prevLed);
                
            }
            ///part2
            delay(1000);
            musicPlayer.startPlayingFile("/12_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
                //audio operatrice
            musicPlayer.startPlayingFile("/13_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                //ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                blinked = false;
                digitalWrite(led, HIGH);
                state =6;
                break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;
        case 6:
            // statements
            Serial.println("CASE6");
            musicPlayer.begin();
            prevLed = led12;
            prevButton = button12;
            led = led03;
            button = button03;
            blinked = true;
                //audio protagoniste
            musicPlayer.startPlayingFile("/14_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
                //audio operatrice
            musicPlayer.startPlayingFile("/15_sta.mp3");
            delay(9000);
            while (musicPlayer.playingMusic) {
                ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =7;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;  
        case 7:
            // statements
            Serial.println("CASE7");
            musicPlayer.begin();
            prevLed = led03;
            prevButton = button03;
            led = led13;
            button = button13;
            blinked = true;
                //audio protagoniste
            musicPlayer.startPlayingFile("/16_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
                //audio operatrice
            musicPlayer.startPlayingFile("/17_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                ledBlink(prevLed);
            }
            ///part2
            musicPlayer.startPlayingFile("/18_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
                //audio operatrice
            musicPlayer.startPlayingFile("/19_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                ledBlink(prevLed);
            }
            ///part3
            musicPlayer.startPlayingFile("/20_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
                //audio operatrice
            musicPlayer.startPlayingFile("/21_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                //ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =8;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;   
        case 8:
            // statements
            Serial.println("CASE8"); 
            musicPlayer.begin();
            prevLed = led13;
            prevButton = button13;
            led = led06;
            button = button06;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/22_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/23_sta.mp3");
            delay(7000);
            while (musicPlayer.playingMusic) {
                ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =9;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;
        case 9:
            // statements
            Serial.println("CASE9");
            musicPlayer.begin();
            prevLed = led06;
            prevButton = button06;
            led = led11;
            button = button11;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/24_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/25_sta.mp3");
            delay(3000);
            while (musicPlayer.playingMusic) {
                ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =10;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;    
        case 10:
            // statements
            Serial.println("CASE10");
            musicPlayer.begin();
            prevLed = led11;
            prevButton = button11;
            led = led04;
            button = button04;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/26_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/27_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                //ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =11;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;  
        case 11:
            // statements
            Serial.println("CASE11");
            musicPlayer.begin();
            prevLed = led04;
            prevButton = button04;
            led = led09;
            button = button09;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/28_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/29_sta.mp3");
            delay(3000);
            while (musicPlayer.playingMusic) {
                ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =12;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;  
        case 12:
            // statements
            Serial.println("CASE12");
            musicPlayer.begin();
            prevLed = led09;
            prevButton = button09;
            led = led15;
            button = button15;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/30_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/31_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                //ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =13;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;  
        case 13:
            // statements
            Serial.println("CASE13");
            musicPlayer.begin();
            prevLed = led15;
            prevButton = button15;
            led = led07;
            button = button07;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/32_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/33_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                //ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =14;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;
        case 14:
            // statements
            Serial.println("CASE14");
            musicPlayer.begin();
            prevLed = led07;
            prevButton = button07;
            led = led01;
            button = button01;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/34_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/35_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                ledBlink(led);
                delay(100);
                ledBlink(led10);
                delay(100);
                ledBlink(led14);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =15;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;
        case 15:
            // statements
            Serial.println("CASE15");
            musicPlayer.begin();
            prevLed = led01;
            prevButton = button01;
            led = led10;
            button = button10;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/36_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        ledBlink(led);
                        ledBlink(led14);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    ledBlink(led);
                    ledBlink(led14);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/37_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =16;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break; 
        case 16:
            // statements
            Serial.println("CASE16");
            musicPlayer.begin();
            prevLed = led10;
            prevButton = button10;
            led = led14;
            button = button14;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/38_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        ledBlink(led);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    ledBlink(led);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/39_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =17;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;
        case 17:
            // statements
            Serial.println("CASE17");
            musicPlayer.begin();
            prevLed = led14;
            prevButton = button14;
            led = led08;
            button = button08;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/40_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/41_sta.mp3");
            delay(6000);
            while (musicPlayer.playingMusic) {
                ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =18;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;
        case 18:
            // statements
            Serial.println("CASE18");
            musicPlayer.begin();
            prevLed = led08;
            prevButton = button08;
            led = led13;
            button = button13;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/42_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/43_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                //ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =19;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;  
        case 19:
            // statements
            Serial.println("CASE19");
            musicPlayer.begin();
            prevLed = led13;
            prevButton = button13;
            led = led06;
            button = button06;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/44_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/45_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                //ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =20;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;
        case 20:
            // statements
            Serial.println("CASE20");
            musicPlayer.begin();
            prevLed = led06;
            prevButton = button06;
            led = led07;
            button = button07;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/46_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/47_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                //ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =21;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;
        case 21:
            // statements
            Serial.println("CASE21");
            musicPlayer.begin();
            prevLed = led07;
            prevButton = button07;
            led = led11;
            button = button11;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/48_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/49_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                //ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =22;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;   
        case 22:
            // statements
            Serial.println("CASE22");
            musicPlayer.begin();
            prevLed = led11;
            prevButton = button11;
            led = led03;
            button = button03;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/50_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            digitalWrite(prevLed,LOW);
            delay(1000);
            //audio operatrice
            musicPlayer.startPlayingFile("/51_sta.mp3");
            delay(0);
            while (musicPlayer.playingMusic) {
                //ledBlink(led);
            }
            wasPlayed = true;
            blinked = true;
            
            while(1){
                if (digitalRead(button) == LOW){
                    blinked = false;
                    digitalWrite(led, HIGH);
                    state =23;
                    break;
                }
                else if(blinked == true){
                    ledBlink(led);
                    if (!musicPlayer.playingMusic){
                        musicPlayer.startPlayingFile("/00_loop.mp3");
                    }
                }
            }
            break;
        case 23:
            // statements
            Serial.println("CASE23");
            musicPlayer.begin();
            prevLed = led03;
            prevButton = button03;
            led = led03;
            button = button03;
            blinked = true;
            //audio protagoniste
            musicPlayer.startPlayingFile("/52_pro.mp3");
            while (musicPlayer.playingMusic) {
                if (digitalRead(prevButton) ==HIGH){
                    if(blinked == true){
                        ledBlink(prevLed);
                        musicPlayer.setVolume(255,255);
                    }
                }
                else {
                    digitalWrite(prevLed,HIGH);
                    musicPlayer.setVolume(1,1);
                }
            }
            seqFinal();
            delay(5000);
            //state = 0;
            break;   
        default:
            // statements
            break;
    }
}

void initScenario(){
  
  for (int i=11; i<=24; i++){
    digitalWrite(i*2+1,HIGH);
    delay (50);
  }
  digitalWrite(19,HIGH);
  delay (50);
  
  for (int i=11; i<=24; i++){
    digitalWrite(i*2+1,LOW);
  }
  digitalWrite(19,LOW);

}

void seqFinal(){
  
  for (int i=11; i<=24; i++){
    digitalWrite(i*2+1,HIGH);
    delay (50);
  }
  digitalWrite(19,HIGH);
  delay (50);
  delay(3000);
  for (int i=11; i<=24; i++){
    digitalWrite(i*2+1,LOW);
    delay(100);
  }
  digitalWrite(19,LOW);

}

void ledBlink(byte led){
  
    digitalWrite(led,HIGH);
    delay (100);
    digitalWrite(led,LOW);
    delay (100);
  
}
Attachments
the machine
the machine
Capture d’écran 2022-06-02 à 15.08.47.png (744.33 KiB) Viewed 222 times

User avatar
marshaj847
 
Posts: 46
Joined: Wed Jul 31, 2013 6:12 pm

Re: music Maker MP3 shield : musicPlayer.playingMusic is tru

Post by marshaj847 »

A couple of questions/comments
Which Arduino model are you using?
Have you tried changing the pinMode to using INPUT_PULLUP?

Code: Select all

for(int i=9; i<=24; i++){
    pinMode((i*2 +1), OUTPUT);
    pinMode((i*2), INPUT_PULLUP);  // <--- 
}
pinMode (53, INPUT_PULLUP);
edited to add code

User avatar
siroptinmar
 
Posts: 2
Joined: Thu Jun 02, 2022 9:07 am

Re: music Maker MP3 shield : musicPlayer.playingMusic is tru

Post by siroptinmar »

I'm using arduino Mega 2560. (And i've follow the steps for this board).
I've had problem with some pins (50,51,52) because SPI on it, but it was solved at the beginning.

My input are pulled down with 10k resistors. No problem with this, no problem with electronics.

I've said that any case in my code was checked independently and works, i have some problems only if i play multiple cases. At a time, it's not reading the sound but playMusic is true.

I think it's more a problem of buffer or reading data.


Thanks.

Locked
Please be positive and constructive with your questions and comments.

Return to “Arduino Shields from Adafruit”