sketch_92_Sprachsteuerung_Songs

sketch_92_Sprachsteuerung_Songs
  /*Abspielen von Songs, die auf einer micro SD-Card gespeichert sind.
  Maximal 21 Songs, sonst keine Funktion mehr.
  Die Songs muessen als .wav-Datei gespeichert sein (Details siehe "Tutorial").
  Der Aufruf des jeweiligen Songs erfolgt per Sprachsteuerung von einem Smartphone mit der App "AMR_Voice". 
  Der gesprochene Text wird von der App in eine Zeichenfolge umgewandelt und auch angezeigt und muss exakt 
  der im Sketch hinterlegten Zeichenfolge entsprechen, auch Gross-Kleinbuchstaben (zum Beispiel "Spiele Song 1").
  
  Siehe auch: https://www.electronicshub.org/music-player-using-arduino/ 
  
  Uebertragen werden die Zeichenfolgen per Bluetooth vom Phone zu einem Modul HC-05 und weiter zum Arduino.
  
  Als Baudrate zum HC-05 wird 9600 verwendet, siehe auch unten HC_Serial.begin(9600).
  Im allgemeinen ist das im HC-05 so voreingestellt.
  Wenn nicht, muss die Baudrate mit AT-Befehlen umgestellt werden.
  Konfiguration des HC-05 siehe Mechatronik Teil 4 "Sketch 85 Bluetooth Modul HC-05 konfigurieren".
  
  Die Ausgabe erfolgt von Pin D9 als PWM-Signal (keine Analog-Sinus-Schwingungen) ueber einen 
  Transistor-Verstaerker an den Lautsprecher.
  Mit tmrpcm.setVolume(3) kann die Lautstaerke eingestellt werden (bei >5 verzerrt)*/
  
  /*fuer micro SD Karten-Leser:*/
  #include <SD.h>                       // SD.h ist standardmaessig vorhanden   
  #include <TMRpcm.h>                   // TMRpcm muss geladen werden
  #include <SPI.h>                      // SP.h ist standardmaessig vorhanden
  #define SD_ChipSelectPin 4            // Pin D4 muss hier verwendet werden
  TMRpcm tmrpcm;  
  
  /*fuer Bluetooth-Modul HC-05:*/
  #include <SoftwareSerial.h>
  SoftwareSerial HC_Serial(6,7);        // Pin D6 wird RxD (an TxD des HC-05) und Pin D7 wird TxD (an RxD des HC-05)             
  
  /*fuer Spracherkennung, als Signal ueber HC-05:*/
  String voice;
  
  
  void setup()
  { 
   tmrpcm.speakerPin = 9;               // Pin D9 muss hier verwendet werden
   tmrpcm.setVolume(5);                 // bei >5 verzerrt 
   Serial.begin(9600);                  // Initialisierung Serial Monitor
   if (!SD.begin(SD_ChipSelectPin))     // Prueft, ob eine SD-Karte eingesteckt ist
   {
    Serial.println("SD fail");
    return;
   }                                                                   
   Serial.println("Bereit");            
   HC_Serial.begin(9600);               // Baudrate zum HC-05 auf 9600 
  }
  
  void loop()
  {
  while (HC_Serial.available())
   { 
    delay(10);         
    char c = HC_Serial.read();     
    if (c == '#') {break;}            // “#“ zeigt das Ende eines Befehls an, deshalb soll der Loop verlassen werden
    voice += c;  
   }
   if (voice.length() > 0) 
   {
    Serial.println(voice); 
    if(voice == "*Spiele Song 1")
    {
     tmrpcm.play("Song1.wav");        
    }
    if(voice == "*Spiele Song 2")
    {
     tmrpcm.play("Song2.wav");        
    }
    if(voice == "*Spiele Song 3")
    {
     tmrpcm.play("Song3.wav");        
    }
     if(voice == "*Spiele Song 4")
    {
     tmrpcm.play("Song4.wav");        
    }
     if(voice == "*Spiele Song 5")
    {
     tmrpcm.play("Song5.wav");        
    }
     if(voice == "*Spiele Song 6")
    {
     tmrpcm.play("Song6.wav");        
    }                                     
     if(voice == "*Spiele Song 7")
    {
     tmrpcm.play("Song7.wav");        
    }
    if(voice == "*Spiele Song 8")
    {
     tmrpcm.play("Song8.wav");        
    }
    if(voice == "*Spiele Song 9")         
    {
     tmrpcm.play("Song9.wav");        
    }
    if(voice == "*Spiele Song 10")
    {
     tmrpcm.play("Song10.wav");       
    }
    if(voice == "*Spiele Song 11")
    {
     tmrpcm.play("Song11.wav");       
    }
    if(voice == "*Spiele Song 12")
    {
     tmrpcm.play("Song12.wav"); 
     }
    if(voice == "*Spiele Song 13")
    {
     tmrpcm.play("Song13.wav");         
    }
    if(voice == "*Spiele Song 14")
    {
     tmrpcm.play("Song14.wav"); 
     }
    if(voice == "*Spiele Song 15")
    {
     tmrpcm.play("Song15.wav");         
    }
    if(voice == "*Spiele Song 16")
    {
     tmrpcm.play("Song16.wav"); 
     }
    if(voice == "*Spiele Song 17")
    {
     tmrpcm.play("Song17.wav");         
    }
    if(voice == "*Spiele Song 18")
    {
     tmrpcm.play("Song18.wav"); 
     }
    if(voice == "*Spiele Song 19")
    {
     tmrpcm.play("Song19.wav");         
    }
    if(voice == "*Spiele Song 20")
    {
     tmrpcm.play("Song20.wav");         
    }
    if(voice == "*Spiele Song 21")
    {
     tmrpcm.play("Song21.wav");            
    }
    else 
    {
    }
    voice="";
   } 
  }