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);
}
Obra publicada con Licencia Creative Commons Reconocimiento Compartir igual 4.0