Saltar la navegación

Código Arduino Mega

Código para Arduino Mega

//sacosta.org
//cada una de las Tarjetas registradas hace sonar el sonido asociado o una función: next, previous, pause, start.....
//hemos cambiado delay por millis()
//ampliado número de Tarjetas
//Tarjeta 211 para(pausa) la reproducción de un sonido.
//Tarjeta 212 reinicia la reproducción despues de la pausa (start)
//Tarjeta 213 reproduce el sonido siguiente al último reproducido o en reproducción(PREVIOUS)
//Tarjeta 214 reproduce el sonido anterior al último reproducido o en reproducción(NEXT)
//Tarjeta 215 FIJA A UN VALOR DETERMINADO EL VOLUMEN 0-30 Baja volumen a un valor determinado
//Tarjeta 216 FIJA A UN VALOR DETERMINADO EL VOLUMEN 0-30 Sube volumen a un valor determinado
 
//Cambio en el modo lectura para facilitar la introducción de los códigos de las tarjetas
//Muestra por LCD (2004: 20 columnas y 4 filas) canción y tarjeta
//este código funciona en un Arduino Nano o Mega con algunos cambios
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
#include "SPI.h"
#include <MFRC522.h>
#include <MFRC522Extended.h>
 
//Connexiones LCD (20 04) I2C a Arduino Mega
//SDA a A4 de arduino mega
//SCL a A5 de arduino mega
//Connexiones LCD (20 04) I2C a Arduino Mega
//SDA a SDA 20 de arduino mega
//SCL a SCL 21 de arduino mega
// Define pines modulo RFID RC522
 
 
#define SS_PIN 53//10
#define RST_PIN 9
 
MFRC522 mfrc522(SS_PIN, RST_PIN); 
MFRC522::MIFARE_Key key;
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
 
LiquidCrystal_I2C lcd(0x27,20,4);  // 0x27 es el código del tipo de LCD, 27 es la dirección por defecto. 20 es el numero de columnas y 4 de las filas
int tarjeta;//variable con la que asociaremos un código de tarjeta a un número
String sonido;//variable para dar nombre a la reproducción o a la función de la tarjeta
String archivo="RFID_MP3_LCD.INO";//nombre del programa arduino que aparecerá en la pantalla
char st[20];
 
// Define pines modulo DFPlayer Mini 
SoftwareSerial mySoftwareSerial(10, 11); // Pin RX del MP3 pasanado por la resistencia va a D11,Pin TX va a D10
DFRobotDFPlayerMini myDFPlayer;
String strID = "";
unsigned long TiempoAhora = 0;//variable utilizada para captar el valor de millis() en un momento dado
const int      TIME       =  1000; //tiempo para fijar un "delay".
 
void setup() 
{
   lcd.init();
   //Pone en marcha el LCD
   lcd.backlight();
   //Pone en marcha la luz de fondo del LCD
   
 //Comunicación serial con el modulo MP3
  mySoftwareSerial.begin(9600);
  // Inicia  serial
  Serial.begin(9600);
  // Inicia  SPI bus
  SPI.begin();
  // Inicia mfrc522
 mfrc522.PCD_Init(); 
  
  // Mensajes iniciales en  monitor serie
  Serial.println();
  Serial.println(F("DFRobot DFPlayer Mini"));
  Serial.println(F("Inicializando módulo DFPlayer... (3~5 segundos)"));
 //Mensajes iniciales en el LCD
 lcd.setCursor(0, 0);  
 lcd.print(archivo);
 lcd.setCursor(0, 1);
 lcd.print("DFRobot DFPlayerMini");
 lcd.setCursor(0, 2);
 lcd.print("sacosta.org");
 lcd.setCursor(0, 3);
 lcd.print("Inicializando...");
 
  if (!myDFPlayer.begin(mySoftwareSerial))//si no se inicializa
   {
    Serial.println(F("No inicializado:"));
    Serial.println(F("1.Chequee las conexiones del DFPlayer Mini"));
    Serial.println(F("2.Inserte la Tarjeta SD"));
 lcd.clear();
 lcd.setCursor(0, 0); //
 lcd.print("No inicializado:");
 lcd.setCursor(0, 1);
 lcd.print("Revise conexiones");
 lcd.setCursor(0, 2);
 lcd.print("del DFPlayer Mini");
 lcd.setCursor(0, 3);
 lcd.print("Inserte la TarjetaSD");
    
    while (true);
  }
  Serial.println();
  Serial.println(F("Módulo DFPlayer Mini inicializado!"));
  myDFPlayer.setTimeOut(500); //Timeout serial 500ms
  myDFPlayer.volume(30);  //Set volume value (0~30).
  myDFPlayer.EQ(0); //Equalización normal
  Serial.println("Acerca tu Tarjeta Acerca tu Tarjeta...");
  Serial.println();
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print(archivo);
 lcd.setCursor(0, 1); 
 lcd.print("DFPlayer Mini OK");
 lcd.setCursor(0, 2);
 lcd.print("Acerca tu Tarjeta");
 lcd.setCursor(0, 3);
 lcd.print("al lector RFID");
  
}
 
void loop() 
{
  // En espera de Tarjeta
  if ( ! mfrc522.PICC_IsNewCardPresent()|| !mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);//analitza el tipus de tarja
  if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
      piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
      piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
    Serial.println(F("Your tag is not of type MIFARE Classic."));
    return;
    //si no és una Mifare classics vuelve a empezar el loop
  }
 
  strID = "";
  for (byte i = 0; i < 4; i++) {
    strID +=
      (mfrc522.uid.uidByte[i] < 0x10 ? "0" : "") +
      String(mfrc522.uid.uidByte[i], HEX) +
      (i != 3 ? ":" : "");
  }
  strID.toUpperCase();
  
  if (validateCard(strID)) {
    Serial.print("*** El ID de tu tarjeta es: ");
    Serial.println(strID);
    Serial.print("");
 lcd.clear();
 lcd.setCursor(0, 0); //
 lcd.print(tarjeta);
 lcd.setCursor(0, 1);
 lcd.print(strID);
 lcd.setCursor(0, 2);
 lcd.print("");
 lcd.setCursor(0, 3);
 lcd.print("");
 
 //función de las tarjetas, condicionada a variable tarjeta
 //Canciones Cristina 1 a 9
    if(tarjeta==1){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(1);
   }
   if(tarjeta==2){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(2);
   }
    if(tarjeta==3){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(3);
   }
   if(tarjeta==4){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(4);
   }
     if(tarjeta==5){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(5);
   }
     
   if(tarjeta==6){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(6);
   }
      if(tarjeta==7){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(7);
   }
    if(tarjeta==8){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(8);
   }
   if(tarjeta==9){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(9);
   }
   //////////////////////////////////////////////////
   // Sonidos de animales 10 a 31
     if(tarjeta==10){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(10);
   }
   
    if(tarjeta==11){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(11);
   }
     if(tarjeta==12){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(12);
   }
     if(tarjeta==13){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(13);
   }
     if(tarjeta==14){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(14);
   }
     if(tarjeta==15){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(15);
   }
     if(tarjeta==16){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(16);
   }
     if(tarjeta==17){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(17);
   }
     if(tarjeta==18){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(18);
   }
     if(tarjeta==19){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(19);
   }
     if(tarjeta==20){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(20);
   }
 
   if(tarjeta==21){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(21);
   }
     if(tarjeta==22){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(22);
   }
     if(tarjeta==23){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(23);
   }
     if(tarjeta==24){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(24);
   }
     if(tarjeta==25){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(25);
   }
     if(tarjeta==26){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(26);
   }
     if(tarjeta==27){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(27);
   }
     if(tarjeta==28){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(28);
   }
     if(tarjeta==29){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(29);
   }
     if(tarjeta==30){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(30);
   }
  
   if(tarjeta==31){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(31);
   }
   /////////////////////////////////////////////////////////////
   //cancionero Marta Gelabert 32 a 55
     if(tarjeta==32){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(32);
   }
     if(tarjeta==33){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(33);
   }
     if(tarjeta==34){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(34);
   }
     if(tarjeta==35){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(35);
   }
     if(tarjeta==36){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(36);
   }
     if(tarjeta==37){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(37);
   }
     if(tarjeta==38){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(38);
   }
     if(tarjeta==39){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(39);
   }
     if(tarjeta==40){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(40);
   }
   //////////////////////////////////////////////////////
   if(tarjeta==41){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(41);
   }
     if(tarjeta==42){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(42);
   }
     if(tarjeta==43){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(43);
   }
     if(tarjeta==44){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(44);
   }
     if(tarjeta==45){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(45);
   }
     if(tarjeta==46){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(46);
   }
     if(tarjeta==47){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(47);
   }
     if(tarjeta==48){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(48);
   }
     if(tarjeta==49){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(49);
   }
     if(tarjeta==50){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(50);
   }
 
   if(tarjeta==51){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(51);
   }
     if(tarjeta==52){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(52);
   }
     if(tarjeta==53){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(53);
   }
     if(tarjeta==54){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(54);
   }
     if(tarjeta==55){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(55);
   }
   //////////////////////////////////////////////////////////////////////
   // sonidos de instrumentos 56 a 74
     if(tarjeta==56){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(56);
   }
     if(tarjeta==57){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(57);
   }
     if(tarjeta==58){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(58);
   }
     if(tarjeta==59){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(59);
   }
     if(tarjeta==60){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(60);
   }
 
   if(tarjeta==61){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(61);
   }
     if(tarjeta==62){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(62);
   }
     if(tarjeta==63){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(63);
   }
     if(tarjeta==64){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(64);
   }
     if(tarjeta==65){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(65);
   }
     if(tarjeta==66){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(66);
   }
     if(tarjeta==67){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(67);
   }
     if(tarjeta==68){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(68);
   }
     if(tarjeta==69){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(69);
   }
     if(tarjeta==70){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(70);
   }
 
   if(tarjeta==71){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(71);
   }
     if(tarjeta==72){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(72);
   }
     if(tarjeta==73){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(73);
   }
     if(tarjeta==74){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(74);
   }
   ///////////////////////////////////////////////////////////////////////////
   // libre 
     if(tarjeta==75){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(75);
   }
     if(tarjeta==76){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(76);
   }
     if(tarjeta==77){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(77);
   }
     if(tarjeta==78){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(78);
   }
     if(tarjeta==79){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(79);
   }
     if(tarjeta==80){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.play(80);
   }
   /////////////////////////////////////////
   
   //las siguientes tarjetas son las de función: Next, Previous, Pause, Volumen, etc. 
   if(tarjeta==211){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.pause();  //Pause the mp3
   }
    if(tarjeta==212){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.start(); // Play
   }
   if(tarjeta==213){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.next();  //Next mp3
   }
   if(tarjeta==214){
   Serial.println("Tarjeta  - Acesso liberado!!");
   Serial.println(tarjeta);
   Serial.println(sonido);
   print_lcd();
   myDFPlayer.previous();  //Previous mp3
   }
   if(tarjeta==215){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.volume(20); //Volumen a 20
   }
   if(tarjeta==216){
    Serial.println("Tarjeta  - Acesso liberado!!");
    Serial.println(tarjeta);
    Serial.println(sonido);
    print_lcd();
    myDFPlayer.volume(30);//Volumen a 30
   }
 
      //delay(1000);
      TiempoAhora = millis();
      while(millis() < TiempoAhora+TIME){
      } 
}}
bool validateCard(String usercard) {
  // ID  de las tarjetas y variables que incorpora
 //////////////////////////TARJETAS USUARIO 1
 //Estos códigos son los códigos de un juego de tarjetas
 //Esta pensado para ser utilizado por dos usuarios con diferentes tarjetas.
 
 //Cançons Critina ............................................................
 // if(usercard.indexOf("55:58:34:21") >= 0) { //tarjeta 1 Joan
 if(usercard.indexOf("53:EA:EC:35") >= 0) { //tarjeta 1 Jesús
    sonido="";
    tarjeta=1;
    sonido="El silenci";//a rellenar nombre sonido o función. Pueden dejarse sólo las comillas
    return true;
  }
 
 // else if(usercard.indexOf("24:42:A7:2B")>= 0) {//tarjeta 2 Joan 
   else if(usercard.indexOf("53:40:75:35")>= 0) {//tarjeta 2 Jesús 
   sonido="";//No tocar. sirve para borrar anterior nombre
   tarjeta=2;
   sonido="Els dies de la setmana";//a rellenar nombre sonido o función
    return true;
  }
 
  //else if(usercard.indexOf("FB:A8:4D:AC") >= 0) {//tarjeta 3 Joan 
   else if(usercard.indexOf("53:50:AD:35") >= 0) {//tarjeta 3 Jesús
   sonido="";
   tarjeta=3;
   sonido="Fort Fluix";//a rellenar nombre sonido o función
    return true;
  }
 
  //else if(usercard.indexOf("55:7C:36:21") >= 0) {//tarjeta 4 Joan 
  else if(usercard.indexOf("53:10:79:35") >= 0) {//tarjeta 4 Jesús
   sonido="";
   tarjeta=4;
   sonido="La tardor";//a rellenar nombre sonido o función
    return true;
  }
 
   //else if(usercard.indexOf("55:1E:74:21") >= 0) {//tarjeta 5 Joan
   else if(usercard.indexOf("63:2E:98:35") >= 0) {//tarjeta 5 Jesús
   sonido="";
   tarjeta=5;
   sonido="Les vocals";//a rellenar nombre sonido o función
    return true;
  }
 
  //else if(usercard.indexOf("55:0B:3F:21") >= 0) {//tarjeta 6 Joan
  else if(usercard.indexOf("43:BF:5E:35") >= 0) {//tarjeta 6 Jesús
   sonido="";
   tarjeta=6;
   sonido="Quin dia fa?";//a rellenar nombre sonido o función
    return true;
  }
  
 //  if(usercard.indexOf("55:CA:54:21") >= 0) {//tarjeta 7 Joan
  if(usercard.indexOf("53:EE:15:35") >= 0) {//tarjeta 7 Jesús
   sonido="";
   tarjeta=7;
   sonido="Bon dia";//a rellenar nombre sonido o función
    return true;
  }
 
//  else if(usercard.indexOf("F2:C9:A6:2C") >= 0) {//tarjeta 8 Joan
  else if(usercard.indexOf("53:39:4A:35") >= 0) {//tarjeta 8 Jesús
   sonido="";
   tarjeta=8;
   sonido="Rentem les dents";//a rellenar nombre sonido o función
    return true;
  }
 
 // else if(usercard.indexOf("55:D9:8B:21") >= 0) {//tarjeta 9 Joan
  else if(usercard.indexOf("53:A4:03:35") >= 0) {//tarjeta 9 Jesús
   sonido="";
   tarjeta=9;
   sonido="Vestir-se";//a rellenar nombre sonido o función
    return true;
  }
  
 
 
  // Animals.....................................................................................
 
 else if(usercard.indexOf("43:C3:35:35") >= 0) {//tarjeta 101 Jesus
  sonido="";
   tarjeta=10;
   sonido="Caballo";//a rellenar nombre sonido o función
    return true;
  }
 else if(usercard.indexOf("63:1F:1C:35") >= 0) {//tarjeta 102 Jesus
  sonido="";
   tarjeta=11;
   sonido="Periquito";//a rellenar nombre sonido o función
    return true;
  }
  else if(usercard.indexOf("43:BF:7E:35") >= 0) {//tarjeta 103 Jesus
  sonido="";
   tarjeta=12;
   sonido="Gallo";//a rellenar nombre sonido o función
    return true;
  }
 else if(usercard.indexOf("53:7A:6B:35") >= 0) {//tarjeta 104 Jesus
  sonido="";
   tarjeta=13;
   sonido="Gato";//a rellenar nombre sonido o función
    return true;
  } 
   else if(usercard.indexOf("63:3D:BE:35") >= 0) {//tarjeta 105 Jesus
  sonido="";
   tarjeta=14;
   sonido="Oveja";//a rellenar nombre sonido o función
    return true;
  } 
    else if(usercard.indexOf("53:B0:C9:35") >= 0) {//tarjeta 106 Jesus
  sonido="";
   tarjeta=15;
   sonido="Pato";//a rellenar nombre sonido o función
    return true;
  } 
  else if(usercard.indexOf("53:2E:2C:35") >= 0) {//tarjeta 107 Jesus
  sonido="";
   tarjeta=16;
   sonido="Perro";//a rellenar nombre sonido o función
    return true;
  } 
   else if(usercard.indexOf("43:B4:D8:35") >= 0) {//tarjeta 108 Jesus
  sonido="";
   tarjeta=17;
   sonido="Vaca";//a rellenar nombre sonido o función
    return true;
  } 
 else if(usercard.indexOf("B1:9D:FF:1E") >= 0) {//tarjeta 109 Jesus
  sonido="";
   tarjeta=18;
   sonido="Aguila";//a rellenar nombre sonido o función
    return true;
  } 
 else if(usercard.indexOf("B1:97:BB:1E") >= 0) {//tarjeta 110 Jesus
  sonido="";
   tarjeta=19;
   sonido="Burro";//a rellenar nombre sonido o función
    return true;
  } 
   else if(usercard.indexOf("53:3A:7F:35") >= 0) {//tarjeta 111 Jesus
   sonido="";
   tarjeta=20;
   sonido="Cerdo";//a rellenar nombre sonido o función
    return true;
  } 
   else if(usercard.indexOf("DO:O8:09:1F") >= 0) {//tarjeta 112 Jesus
  sonido="";
   tarjeta=21;
   sonido="Delfín";//a rellenar nombre sonido o función
    return true;
  } 
    else if(usercard.indexOf("A3:CB:B1:35") >= 0) {//tarjeta 113 Jesus
  sonido="";
   tarjeta=22;
   sonido="Elefante";//a rellenar nombre sonido o función
    return true;
  } 
 else if(usercard.indexOf("E0:5D:73:1F") >= 0) {//tarjeta 114 Jesus
  sonido="";
   tarjeta=23;
   sonido="León";//a rellenar nombre sonido o función
    return true;
  } 
else if(usercard.indexOf("DO:82:6A:1F") >= 0) {//tarjeta 115 Jesus
  sonido="";
   tarjeta=24;
   sonido="Lobo";//a rellenar nombre sonido o función
    return true;
  } 
else if(usercard.indexOf("E0:52:2E:1F") >= 0) {//tarjeta 116 Jesus
  sonido="";
   tarjeta=25;
   sonido="Mono";//a rellenar nombre sonido o función
    return true;
  } 
else if(usercard.indexOf("CO:E8:AE:1F") >= 0) {//tarjeta 117 Jesus
  sonido="";
   tarjeta=26;
   sonido="Paloma";//a rellenar nombre sonido o función
    return true;
  }
else if(usercard.indexOf("93:C2:97:35") >= 0) {//tarjeta 118 Jesus
  sonido="";
   tarjeta=27;
   sonido="Pavo";//a rellenar nombre sonido o función
    return true;
  }
else if(usercard.indexOf("63:13:32:35") >= 0) {//tarjeta 119 Jesus
  sonido="";
   tarjeta=28;
   sonido="Pollito";//a rellenar nombre sonido o función
    return true;
  }
else if(usercard.indexOf("63:60:79:35") >= 0) {//tarjeta 120 Jesus
  sonido="";
   tarjeta=29;
   sonido="Rana";//a rellenar nombre sonido o función
    return true;
  }
else if(usercard.indexOf("53:3E:47:35") >= 0) {//tarjeta 121 Jesus
  sonido="";
   tarjeta=30;
   sonido="Tigre";//a rellenar nombre sonido o función
    return true;
  }
  else if(usercard.indexOf("91:90:82:1E") >= 0) {//tarjeta 122 Jesus
  sonido="";
   tarjeta=31;
   sonido="Gallina";//a rellenar nombre sonido o función
    return true;
  }
  //Cançoner Marta ................................................................
  
  //else if(usercard.indexOf("B7:29:5A:63") >= 0) { //tarjeta 32 Marta
  else if(usercard.indexOf("E7:AB:23:63") >= 0) { //tarjeta 32 Jesus
    //sonido="";
    tarjeta=32;
    sonido="PLOU I FA SOL";//omplir nom so o funció
    return true;
  }
 
 // else if(usercard.indexOf("77:F0:53:63")>= 0) {//tarjeta 33 Marta
  else if(usercard.indexOf("67:9C:28:63")>= 0) {//tarjeta 33 Jesus
   //sonido="";//No tocar. serveix per a esborrar l'anterior nom
   tarjeta=33;
   sonido="LA MOSCA";//omplir nom so o funció
    return true;
  }
 
  //else if(usercard.indexOf("37:88:4C:63") >= 0) {//tarjeta 34 Marta
  else if(usercard.indexOf("C7:C3:2F:63") >= 0) {//tarjeta 34 Jesus
   //sonido="";
   tarjeta=34;
   sonido="LA PETITA GRANOTETA";//omplir nom so o funció
    return true;
  }
  
  //else if(usercard.indexOf("67:BB:6C:63") >= 0) {//tarjeta 35 Marta
  else if(usercard.indexOf("17:7D:32:63") >= 0) {//tarjeta 35 Jesus
   //sonido="";
   tarjeta=35;
   sonido="LA LLUNA";//omplir nom so o funció
    return true;
  }
 
   // else if(usercard.indexOf("67:6E:2D:63") >= 0) {//tarjeta 36 Marta
   else if(usercard.indexOf("97:57:21:63") >= 0) {//tarjeta 36 Jesus
   //sonido="";
   tarjeta=36;
   sonido="ESQUIROL";//omplir nom so o funció
    return true;
  }
 
 // else if(usercard.indexOf("F7:BB:30:63") >= 0) {//tarjeta 37 Marta
  else if(usercard.indexOf("C7:A9:2A:63") >= 0) {//tarjeta 37 Jesus
   //sonido="";
   tarjeta=37;
   sonido="LLEÓ";//omplir nom so o funció
    return true;
  }
 
   //if(usercard.indexOf("B7:09:26:63") >= 0) {//tarjeta 38 Marta
   if(usercard.indexOf("C7:F2:34:63") >= 0) {//tarjeta 38 Jesus
   //sonido="";
   tarjeta=38;
   sonido="EL GALL I LA GALLINA";//omplir nom so o funció
    return true;
  }
 
 //else if(usercard.indexOf("C7:59:67:63") >= 0) {//tarjeta 39 Marta
  else if(usercard.indexOf("D7:4C:22:63") >= 0) {//tarjeta 39 Jesus
   //sonido="";
   tarjeta=39;
   sonido="CARAGOL";//omplir nom so o funció
    return true;
  }
 
  //else if(usercard.indexOf("87:2F:4E:63") >= 0) {//tarjeta 40 Marta
  else if(usercard.indexOf("67:07:32:63") >= 0) {//tarjeta 40 Jesus
   //sonido="";
   tarjeta=40;
   sonido="SOL SOLET";//omplir nom so o funció
    return true;
  }
 
 //else if(usercard.indexOf("F7:B3:6D:63") >= 0) {//tarjeta 41 Marta
  else if(usercard.indexOf("C7:EE:32:63") >= 0) {//tarjeta 41 Jesus
   //sonido="";
   tarjeta=41;
   sonido="TIC TAC";//omplir nom so o funció
    return true;
  }
 
//else if(usercard.indexOf("D7:80:50:63") >= 0) {//tarjeta 42 Marta
 else if(usercard.indexOf("37:F4:2A:63") >= 0) {//tarjeta 42 Jesus
   //sonido="";
   tarjeta=42;
   sonido="DALT DEL COTXE";//omplir nom so o funció
    return true;
  }
 
  //else if(usercard.indexOf("47:DB:2D:63") >= 0) {//tarjeta 43 Marta
   else if(usercard.indexOf("37:40:2E:63") >= 0) {//tarjeta 43 Jesus
   //sonido="";
   tarjeta=43;
   sonido="ELEFANT";//omplir nom so o funció
    return true;
  }
 
  // else if(usercard.indexOf("B7:4E:53:63") >= 0) {//tarjeta 44 Marta
   else if(usercard.indexOf("57:C4:32:63") >= 0) {//tarjeta 44 Jesus
   //sonido="";
   tarjeta=44;
   sonido="CINC POMETES";//omplir nom so o funció
    return true;
  }
 
  // else if(usercard.indexOf("6B:FD:59:AC") >= 0) {//tarjeta 45 Marta
    else if(usercard.indexOf("17:F3:29:63") >= 0) {//tarjeta 45 Jesus
   //sonido="";
   tarjeta=45;
   sonido="Tipi Tipi Tap";//omplir nom so o funció
    return true;
  }
 
   // else if(usercard.indexOf("B7:D2:29:63") >= 0) {//tarjeta 46 Marta
   else if(usercard.indexOf("07:5F:32:63") >= 0) {//tarjeta 46 Jesus
   //sonido="";
   tarjeta=46;
   sonido="Pastoret d'on vens";//omplir nom so o funció
    return true;
  }
 
 //else if(usercard.indexOf("77:7A:49:63") >= 0) {//tarjeta 47 Marta
  else if(usercard.indexOf("67:DB:21:63") >= 0) {//tarjeta 47 Jesus
   //sonido="";
   tarjeta=47;
   sonido="Cap pelat titina";//omplir nom so o funció
    return true;
  }
 
   // else if(usercard.indexOf("37:D5:42:63") >= 0) {//tarjeta 48 Marta
      else if(usercard.indexOf("27:F6:2C:63") >= 0) {//tarjeta 48 Jesus
   //sonido="";
   tarjeta=48;
   sonido="Quan les oques van al camp";//omplir nom so o funció
    return true;
  }
 
 // else if(usercard.indexOf("67:BF:29:63") >= 0) {//tarjeta 49 Marta
  else if(usercard.indexOf("17:F8:30:63") >= 0) {//tarjeta 49 Jesus
   //sonido="";
   tarjeta=49;
   sonido="Escarabat bum bum";//omplir nom so o funció
    return true;
  }
 
  //else if(usercard.indexOf("A7:A3:39:63") >= 0) {//tarjeta 50 Marta
  else if(usercard.indexOf("27:10:33:63") >= 0) {//tarjeta 50 Jesus
   //sonido="";
   tarjeta=50;
   sonido="Sa ximbomba";//omplir nom so o funció
    return true;
  }
 
 //else if(usercard.indexOf("A7:F5:36:63") >= 0) {//tarjeta 51 Marta
  else if(usercard.indexOf("D7:73:31:63") >= 0) {//tarjeta 51 Jesus
   //sonido="";
   tarjeta=51;
   sonido="Arri arri tatanet";//omplir nom so o funció
    return true;
  }
 
//else if(usercard.indexOf("27:47:47:63") >= 0) {//tarjeta 52 Marta
 else if(usercard.indexOf("C7:A7:31:63") >= 0) {//tarjeta 52 Jesus
   //sonido="";
   tarjeta=52;
   sonido="Un tren petitó";//omplir nom so o funció
    return true;
  }
 
  //else if(usercard.indexOf("87:FB:2F:63") >= 0) {//tarjeta 53 Marta
   else if(usercard.indexOf("57:E6:2F:63") >= 0) {//tarjeta 53 Jesus
   //sonido="";
   tarjeta=53;
   sonido="Cada dia al dematí";//omplir nom so o funció
    return true;
  }
 
  //else if(usercard.indexOf("27:D5:46:63") >= 0) {//tarjeta 54 Marta
   else if(usercard.indexOf("37:2D:2D:63") >= 0) {//tarjeta 54 Jesus
   //sonido="";
   tarjeta=54;
   sonido="El gegant del pi";//omplir nom so o funció
    return true;
  }
 
  //else if(usercard.indexOf("37:E9:4D:63") >= 0) {//tarjeta 55 Marta
    else if(usercard.indexOf("27:0B:2B:63") >= 0) {//tarjeta 55 Jesus
   //sonido="";
   tarjeta=55;
   sonido="El moix";//omplir nom so o funció
    return true;
  }
  
  //////////////////////////////////////////////
  //instrumentos
  
  else if(usercard.indexOf("63:59:OF:35") >= 0) {//tarjeta 41 Marta
   //sonido="";
   tarjeta=56;
   sonido="FLAUTA";//omplir nom so o funció
    return true;
  }
 
 else if(usercard.indexOf("63:56:A7:35") >= 0) {//tarjeta 42 Marta
   //sonido="";
   tarjeta=57;
   sonido="VIOLÍN";//omplir nom so o funció
    return true;
  }
   else if(usercard.indexOf("43:B4:8F:35") >= 0) {//tarjeta 43 Marta
   //sonido="";
   tarjeta=58;
   sonido="PIANO";//omplir nom so o funció
    return true;
  }
   else if(usercard.indexOf("91:32:13:1E") >= 0) {//tarjeta 44 Marta
   //sonido="";
   tarjeta=59;
   sonido="TROMPETA";//omplir nom so o funció
    return true;
  }
    else if(usercard.indexOf("91:65:15:1E") >= 0) {//tarjeta 45 Marta
   //sonido="";
   tarjeta=60;
   sonido="ARMÓNICA";//omplir nom so o funció
    return true;
  }
   
   else if(usercard.indexOf("53:82:42:35") >= 0) {//tarjeta 46 Marta
   //sonido="";
   tarjeta=61;
   sonido="GUITARRA";//omplir nom so o funció
    return true;
  }
 
  else if(usercard.indexOf("53:2C:6:35") >= 0) {//tarjeta 47 Marta
   //sonido="";
   tarjeta=62;
   sonido="ACORDEÓN";//omplir nom so o funció
    return true;
  }
   
   if(usercard.indexOf("53:38:61:35") >= 0) {//tarjeta 48 Marta
   //sonido="";
   tarjeta=63;
   sonido="SAXOFÓN";//omplir nom so o funció
    return true;
  }
 
  else if(usercard.indexOf("91:BB:9F:1E") >= 0) {//tarjeta 49 Marta
   //sonido="";
   tarjeta=64;
   sonido="ARPA";//omplir nom so o funció
    return true;
  }
 
  else if(usercard.indexOf("91:B9:63:1E") >= 0) {//tarjeta 40 Marta
   //sonido="";
   tarjeta=65;
   sonido="XILÓFONO";//omplir nom so o funció
    return true;
  }
 
  else if(usercard.indexOf("53:CB:C5:35") >= 0) {//tarjeta 41 Marta
   //sonido="";
   tarjeta=66;
   sonido="CASCABEL";//omplir nom so o funció
    return true;
  }
 
 else if(usercard.indexOf("63:46:31:35") >= 0) {//tarjeta 42 Marta
   //sonido="";
   tarjeta=67;
   sonido="MARACAS";//omplir nom so o funció
    return true;
  }
   else if(usercard.indexOf("53:54:5C:35") >= 0) {//tarjeta 43 Marta
   //sonido="";
   tarjeta=68;
   sonido="CAJA CHINA";//omplir nom so o funció
    return true;
  }
   else if(usercard.indexOf("53:AO:6F:35") >= 0) {//tarjeta 44 Marta
   //sonido="";
   tarjeta=69;
   sonido="TAMBOR";//omplir nom so o funció
    return true;
  }
    else if(usercard.indexOf("43:D1:63:35") >= 0) {//tarjeta 45 Marta
   //sonido="";
   tarjeta=70;
   sonido="TRIÁNGULO";//omplir nom so o funció
    return true;
  }
   
   else if(usercard.indexOf("53:94:E9:35") >= 0) {//tarjeta 46 Marta
   //sonido="";
   tarjeta=71;
   sonido="PLATILLOS";//omplir nom so o funció
    return true;
  }
 
  else if(usercard.indexOf("53:E2:90:35") >= 0) {//tarjeta 47 Marta
   //sonido="";
   tarjeta=72;
   sonido="PANDERETA";//omplir nom so o funció
    return true;
  }
   
   if(usercard.indexOf("53:B9:AO:35") >= 0) {//tarjeta 48 Marta
   //sonido="";
   tarjeta=73;
   sonido="ZAMBOMBA";//omplir nom so o funció
    return true;
  }
  else if(usercard.indexOf("81:99:B2:1E") >= 0) {//tarjeta 40 Marta
   //sonido="";
   tarjeta=74;
   sonido="CASTAÑUELAS";//omplir nom so o funció
    return true;
  }
  
 ////////////////////////////////////
 // libre
  else if(usercard.indexOf("67:BF:29:63") >= 0) {//tarjeta 49 Marta
   //sonido="";
   tarjeta=75;
   sonido="";//omplir nom so o funció
    return true;
  }
  
   // PAUSE PLAY NEXT PREVIOUS ...................................................................
 else if(usercard.indexOf("3C:EA:16:DF") >= 0) {//tarjeta PAUSE
   sonido="";
   tarjeta=501;
   sonido="Pause";//a rellenar nombre sonido o función
    return true;
  }
  
  else if(usercard.indexOf("F2:C5:B3:2C") >= 0) {//tarjeta PLAY
   sonido="";
   tarjeta=502;
   sonido="Play";//a rellenar nombre sonido o función
    return true;
  }
 
  else if(usercard.indexOf("19:3D:13:8F") >= 0) {//tarjeta NEXT
   sonido="";
   tarjeta=503;
   sonido="Next";//a rellenar nombre sonido o función
    return true;
  }
  
  else if(usercard.indexOf("2B:1B:4F:AC") >= 0) {//tarjeta PREVIOUS
   sonido="";
   tarjeta=504;
   sonido="Previous";//a rellenar nombre sonido o función
    return true;
  }
  
   else if(usercard.indexOf("B3:A1:3A:0B") >= 0) {//tarjeta VOLUMEN BAJO
   sonido="";
   tarjeta=505;
   sonido="Volumen Bajo";//a rellenar nombre sonido o función
    return true;
  }
 
  
  else if(usercard.indexOf("A9:91:15:8F") >= 0) {//tarjeta VOLUMEN ALTO
   sonido="";
   tarjeta=506;
   sonido="Volumen Alto";//a rellenar nombre sonido o función
    return true;
  } 
 
  
  //NO TOCAR por si introducen una tarjeta desconocida 
  else{
   sonido="";
   tarjeta=300;
   sonido="TARJETA DESCONOCIDA";//a rellenar nombre sonido o función
   return true;
   }
}
void print_lcd(){
 lcd.clear();
 lcd.setCursor(0, 0); //
 lcd.print("TARJETA ");
 lcd.setCursor(9, 0); //
 lcd.print(tarjeta);
 lcd.setCursor(0, 1);
 lcd.print(strID);
 lcd.setCursor(0, 2);
 lcd.print("");
 lcd.setCursor(0, 3);
 lcd.print(sonido); 
 }