Saltar la navegación

Codi projecte 4

//encen i apaga led i simultàniament emet sons amb mp3
//fet per a ser controlat via Bluetooth amb l'app del MIT sacosta_9_leds
//placa elechouse mp3
//www.sacosta.org
#include <SoftwareSerial.h>
#include <MP3.h>
SoftwareSerial Geno(7,8); // Rx , Tx
/** defineix mp3 class */
MP3 mp3;

int durada =100;

void setup()
   {    Serial.begin(9600);         
delay (1000); //s'ha de deixar un segon per estabilitzar shield
  mp3.begin(MP3_SOFTWARE_SERIAL);    // selecciona software serial
 
  /** selecciona MP3 Shield SINGLE mode */
  mp3.set_mode(MP3::SINGLE);

#define led1 3 //definim a quin pin connectam els leds
#define led2 4
#define led3 5
#define led4 6//deixam lliures els pins 7 i 8 que empra l'elechouse mp3 per defecte
#define led5 9
#define led6 10
#define led7 11
#define led8 12
#define led9 13
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);
apagar_tot(); //apaga tots els leds
         }

void loop() {   
 char dato= Serial.read();   
                    if (dato=='1'){
                        //Serial.println("1 encen led 1");
                        apagar_tot();
                        digitalWrite(led1, HIGH);
                        so_1();

                      }
                    else if (dato=='2'){
                        //Serial.println("2 encen led 2");
                        apagar_tot();
                        digitalWrite(led2, HIGH);
                        so_2();
                    }
                    else if (dato=='3'){
                       // Serial.println("3 encen led 3");
                        apagar_tot();
                        digitalWrite(led3, HIGH);
                        so_3();
                    }
                    else if (dato=='4'){
                        //Serial.println("4 encen led 4");
                        apagar_tot();
                        digitalWrite(led4, HIGH);
                        so_4();
                    }
                    else if (dato=='5'){
                        //Serial.println("5 encen led 5");
                        apagar_tot();
                        digitalWrite(led5, HIGH);
                        so_5();
                    }
                     else if (dato=='6'){
                        //Serial.println("6 encen led 6");
                        apagar_tot();
                        digitalWrite(led6, HIGH);
                        so_6();
                     }
                      else if (dato=='7'){
                        Serial.println("7 encen led 7");
                        apagar_tot();
                        digitalWrite(led7, HIGH);
                        so_7();
                      }
                      else if (dato=='8'){
                        Serial.println("8 encen led 8");
                         apagar_tot();
                         digitalWrite(led8, HIGH);
                         so_8();
                      }
                     else if (dato=='9'){
                         Serial.println("9 encen led 9");
                          apagar_tot();
                         digitalWrite(led9, HIGH);
                         so_9();
                     }
                         
                    else if (dato=='A'){
                         Serial.println("0 apaga tot");
                         apagar_tot();
                         so_0();
                    }
                      
                      else if (dato=='B'){
                         Serial.println("Asterisc ho encen tot");
                         encendre_tot();
                         so_asterisc();
                      }
                       
                       else if (dato=='C'){
                         Serial.println("fletxa dreta encen parell");
                         encendre_parells();
                         so_dreta();
                       }
                      
                      else if (dato=='D'){
                         Serial.println("fletxa esquerra encen senars");
                         encendre_senars();
                         so_esquerra();
                      }
                       
                       else if (dato=='E'){
                         Serial.println("fletxa amut encen els 5 primers");
                         encendre_5primers();
                         so_amunt();
                       }
                      
                      else if (dato=='F'){
                         Serial.println("fletxa avall encen els 5 darrers");
                         encendre_5darrers();
                         so_avall();
                      }
                 
                 delay (durada);
             
          }
      


   void encendre_tot(){//funció encendre tots els leds
  digitalWrite(led1, HIGH);
   digitalWrite(led2, HIGH);
   digitalWrite(led3, HIGH);
   digitalWrite(led4, HIGH);
   digitalWrite(led5, HIGH);
   digitalWrite(led6, HIGH);
   digitalWrite(led7, HIGH);
   digitalWrite(led8, HIGH);
   digitalWrite(led9, HIGH);
   }
    void apagar_tot(){//funció apagar tots els leds
   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);
   
   }
   void encendre_parells(){//apaga els senars i encén els parells
   digitalWrite(led1, LOW);
   digitalWrite(led2, HIGH);
   digitalWrite(led3, LOW);
   digitalWrite(led4, HIGH);
   digitalWrite(led5, LOW);
   digitalWrite(led6, HIGH);
   digitalWrite(led7, LOW);
   digitalWrite(led8, HIGH);
   digitalWrite(led9, LOW);
   
   }
  void encendre_senars(){//encén els senars i apaga els parells
   digitalWrite(led1, HIGH);
   digitalWrite(led2, LOW);
   digitalWrite(led3, HIGH);
   digitalWrite(led4, LOW);
   digitalWrite(led5, HIGH);
   digitalWrite(led6, LOW);
   digitalWrite(led7, HIGH);
   digitalWrite(led8, LOW);
   digitalWrite(led9, HIGH);
   }
   void encendre_5primers(){//encén els cinc primers led1, 2, 3, 4 i 5
   digitalWrite(led1, HIGH);
   digitalWrite(led2, HIGH);
   digitalWrite(led3, HIGH);
   digitalWrite(led4, HIGH);
   digitalWrite(led5, HIGH);
   digitalWrite(led6, LOW);
   digitalWrite(led7, LOW);
   digitalWrite(led8, LOW);
   digitalWrite(led9, LOW);
   
   }
    void encendre_5darrers(){//encén els cinc darers led5, 6, 7, 8 i 9
  digitalWrite(led1, LOW);
   digitalWrite(led2, LOW);
   digitalWrite(led3, LOW);
   digitalWrite(led4, LOW);
   digitalWrite(led5, HIGH);
   digitalWrite(led6, HIGH);
   digitalWrite(led7, HIGH);
   digitalWrite(led8, HIGH);
   digitalWrite(led9, HIGH);
   }
   void so_1(){
   mp3.volume(0x1F);
   mp3.play_spi_flash(0x0001);
   delay (2000);//fixat en funció de la seva durada
   }
   void so_2(){
   mp3.volume(0x1F);
   mp3.play_spi_flash(0x0002);
   delay (3000);
   }
   void so_3(){
   mp3.volume(0x1F);
   mp3.play_spi_flash(0x0003);
   delay (3000);
   }
   void so_4(){
   mp3.volume(0x1F);
   mp3.play_spi_flash(0x0004);
   delay (3000);
   }
    void so_5(){
   mp3.volume(0x1F);
   mp3.play_spi_flash(0x0005);
   delay (3000);
   }
   void so_6(){
   mp3.volume(0x1F);
   mp3.play_spi_flash(0x0006);
   delay (3000);
   }
   void so_7(){
   mp3.volume(0x1F);
   mp3.play_spi_flash(0x0007);
   delay (3000);
   }
   void so_8(){
   mp3.volume(0x1F);
   mp3.play_spi_flash(0x0008);
   delay (3000);
   }
    void so_9(){
   mp3.volume(0x1F);
   mp3.play_spi_flash(0x0009);
   delay (3000);
   }
   void so_0(){
   mp3.volume(0x1F);
   mp3.play_spi_flash(0x000A);
   delay (3000);
   }
   void so_asterisc(){
   mp3.volume(0x1F);
   mp3.play_spi_flash(0x000B);
   delay (3000);
   }
   void so_coixi(){
   mp3.volume(0x1F);
   mp3.play_spi_flash(0x000C);
   delay (3000);
   }
   void so_amunt(){
   mp3.volume(0x1F);
   mp3.play_spi_flash(0x000D);
   delay (2000);
   }
   void so_avall(){
   mp3.volume(0x1F);
   mp3.play_spi_flash(0x000E);
   delay (2000);
   }
   void so_dreta(){
   mp3.volume(0x1F);
   mp3.play_spi_flash(0x000F);
   delay (2000);
   }
   void so_esquerra(){
   mp3.volume(0x1F);
   mp3.play_spi_flash(0x0010);
   delay (3000);
   }