Hallo zusammen,

leider ist dieses Schield nicht in Verbindung mit einem WIFI Shield kompatibel (MP3 Shield killt immer das WIFI Shield)->WIFI Shield not present. Dies habe ich leider erst nach dem Kauf feststellen müssen. Weder mit UNO, noch mit MEGA. Hat jemand vielleicht eine Idee, wie man doch über den selben MC WIFI und MP3 Shield betreiben kann? Als Alternative habe ich hier 2 Mega MCs + UNO und meine Idee war es den Audio Stream über I2C Bus zu übertragen. Ich habe einfach den Buffer für die Send32() Methode über WIRE gesendet und auf dem anderen MC ausgelesen und gleich als array an die Methode übergeben. Dies hatte außer "Stottern in 5 Sek. Takt" keinen großen Erfolg. Auch ein größeres Vorpuffern ergab leider auch nichts positives. Ich wäre euch sehr dankbar über ein Codeschnipsel oder ähnliches.

Kurzer Ausschnitt aus meinem Testcode:
Sender->
unsigned char buffer;
void setup()
{
Serial.begin(9600);

Wire.begin(); // join i2c bus (address optional for master)
Serial.print("Initializing SD card...");
pinMode(53, OUTPUT);
if (!SD.begin(4)) {
Serial.println("Card failed, or not present");
// don't do anything more:
return;
}
Serial.println("card initialized.");
dataFile = SD.open("test.mp3", FILE_READ );
Serial.println("Send File");

while(dataFile.available())
{
Wire.beginTransmission(6);
dataFile.read( buffer, sizeof(buffer) );
Wire.write(buffer, sizeof(buffer));
Wire.endTransmission();
//delay(500); > hat hier die Sache nur verschlechtert
}

Empfänger:
unsigned char buffer;
int counter=0;
void setup()
{
VS1011.begin();
Wire.begin(6); // join i2c bus with address #4
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
}
void receiveEvent(int howMany)
{

while(Wire.available()) // loop through all but the last
{
buffer = Wire.read();
if(counter%32==0 && counter>0)
{
counter=0;
Serial.println( "play");
VS1011.UnsetMute();
VS1011.Send32( buffer );
}
else
counter++;
}
}
Vielen Dank und Viele Grüße
Alexander