Beginn und Ende einer Audiodatei auf SD-Card erkennen

Hallo,

ich möchte zu Beginn eines Songs (Audiodatei) von einer CD-Card einen anderen Prozess starten (z.B. LED leuchten lassen) und am Ende der Audiodatei diesen Prozess wieder anhalten. Wie,wo kann ich ein Signal abgreifen, mit dem ich das so steuern kann ?

Gruß

wAlter67

Wie spielst Du die Audiodatei ab?

Welcher Arduino ist dabei beteiligt?

(Audiodatei) von einer CD-Card

"Compact Disk Card" oder "Secure Digital Memory Card"

Grüße Uwe

wAlter67:
Hallo,

ich möchte zu Beginn eines Songs (Audiodatei) von einer CD-Card.....

Ich kenne keinen CD-Spieler, der am Arduino läuft.

Bitte genauere Infos liefern.

Wie,wo kann ich ein Signal abgreifen, mit dem ich das so steuern kann ?

den Events eine callback Funktion übergeben und die callback Funktion gem. Bedarf definieren

void cbEin()
{
  digitalWrite(ledPin, HIGH);
}

void cbAus()
{
  digitalWrite(ledPin, LOW);
}

// im setup:

cdCardPlayer.onTrackStart(cbEin);
cdCardPlayer.onTrackEnd(cbAus);

klappt nicht? Doch sicher!

Es würde halt helfen wenn man wüsste
für welchen player du das brauchst (link zum Produkt, link zum Datasheet... Bild...)
welche lib du verwendest (downloadlink, ALLE libs verlinken)
auf welchem Controller du bist (link zum Produkt)
und wie dein aktueller Sketch aussieht (hier posten)

Ok, sorry! Ich war gestern etwas "verpennt". Natürlich braucht ihr mehr Infos für das Problem.
Ich verwende einen Arduino Nano und einen Micro SD-Card Reader (siehe Foto). Abgespielt werden wav.-Dateien.
Der Sketch wird ähnlich wie der folgende sein:

#include <SD.h>                      // need to include the SD library
//#define SD_ChipSelectPin 53  //example uses hardware SS pin 53 on Mega2560
#define SD_ChipSelectPin 10  //using digital pin 4 on arduino nano 328
#include <TMRpcm.h>           //  also need to include this library...

TMRpcm tmrpcm;   // create an object for use in this sketch
char mychar;

void setup(){

  tmrpcm.speakerPin = 9; //11 on Mega, 9 on Uno, Nano, etc

  Serial.begin(9600);
  if (!SD.begin(SD_ChipSelectPin)) {  // see if the card is present and can be initialized:
    Serial.println("SD fail");  
    return;   // don't do anything more if not
  }
  tmrpcm.play("beware.wav"); //the sound file "music" will play each time the arduino powers up, or is reset
}

void loop(){  

  if(Serial.available()){   
    mychar = Serial.read();

    if(mychar == 'o'){ //send the letter p over the serial monitor to start playback
      tmrpcm.play("helpyou.wav");
    } else if(mychar == 'r'){ //send the letter p over the serial monitor to start playback
      tmrpcm.play("chortle.wav");
    } else if(mychar == 'q'){ //send the letter p over the serial monitor to start playback
      tmrpcm.play("helpyou.wav");
    } else if(mychar == 'p'){
      tmrpcm.play("beware.wav");
    }
    else if(mychar == 'w'){ //send the letter p over the serial monitor to start playback
      tmrpcm.play("impresiv.wav");
    }
    else if(mychar == 't'){ //send the letter p over the serial monitor to start playback
      tmrpcm.play("seekyoda.wav");
    }
    else if(mychar == 'y'){ //send the letter p over the serial monitor to start playback
      tmrpcm.play("sensefear.wav");
    }
    else if(mychar == 'u'){ //send the letter p over the serial monitor to start playback
      tmrpcm.play("strongami.wav");
    }
    else if(mychar == 'i'){ //send the letter p over the serial monitor to start playback
      tmrpcm.play("whyhere.wav");
    }
  }

}

wAlter67:
Wie,wo kann ich ein Signal abgreifen, mit dem ich das so steuern kann ?

In der Dokumentation findest Du die Methode isPlaying(), die Dir die notwendige Information liefert.

Danke für den Hinweis, das hab ich gesucht aber leider selber nicht gefunden. Ich teste das asap und gebe dann Feedback.

Gruß
wAlter

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.