Hallo,
ich habe die letzte Zeit an einem größeren Code gearbeitet.
Folgende Includes habe ich verwendet:
#include <SD.h> // You need to include the SD library
#include <EEPROM.h> // You also need this library to save the volume level to the EEPROM
#include <TMRpcm.h> // You also need to include this library to play Files
#define SD_ChipSelectPin 4 // Select the CS Pin
Der Code ist 22.714 Bytes groß und läuft auf einem UNO.
Bei dem Code habe ich folgendes Problem:
void setup()
{
pinMode(frontbutton, INPUT_PULLUP);
pinMode(in, INPUT); // Rotarywheel
tmrpcm.speakerPin = 9; // Speaker
Serial.begin(9600);
if (!SD.begin(SD_ChipSelectPin))
{
Serial.println("SD fail");
return;
}
Serial.println("SD okay");
tmrpcm.quality(2);
volumelevel = EEPROM.read(0);
[color=red]//Serial.print("Volume "); Serial.println(volumelevel);[/color]
if((volumelevel >= 1) && (volumelevel <= 4))
{
tmrpcm.setVolume(volumelevel);
}
else
{
tmrpcm.setVolume(3);
}
delay(100);
[color=blue]tmrpcm.play("Auskun.wav");[/color]
delay(1000);
}
[...]
Wenn ich den Teil "//Serial.print("Volume "); Serial.println(volumelevel);" nichtmehr durch // kommentiere, spielt die TMRpcm Library nichtmehr die "Auskun.wav" Datei.
Das "Serial.println("SD okay");" stör sie jedoch nicht.
Weiter unten das gleiche Problem:
void Anrufen()
{
Serial.print("Calling Number: ");
Serial.print(Nummer[0]);
Serial.print(Nummer[1]);
Serial.print(Nummer[2]);
Serial.println(Nummer[3]);
delay(100);
[color=blue]tmrpcm.play("TutTut.wav");[/color]
if(digitalRead(frontbutton) == HIGH)
{
delay(random(2000, 12000));
}
else
{
delay(2000);
}
if((Nummer[0] == 10) & (Nummer[1] == 1) & (Nummer[2] == 10) & (Nummer[3] == 1))// 01.01
{
tmrpcm.play("Test.wav");
}
[...]
//Laut- und Leisereinstellung
else if((Nummer[0] == 10) & (Nummer[1] == 10) & (Nummer[2] == 10) & (Nummer[3] == 1))// Lauter 0001
{
//tmrpcm.volume(1);
[color=red]tmrpcm.play("Lauter.wav");[/color]
volumelevel = (EEPROM.read(0) + 1);
if((volumelevel >= 1) && (volumelevel <= 4)) {
tmrpcm.setVolume(volumelevel);
EEPROM.write(0, volumelevel);
[color=limegreen]//Serial.print("New Volume: "); Serial.println(volumelevel);[/color]
}
}
Sobald ich "//Serial.print("New Volume: "); Serial.println(volumelevel);" auskomentiere, spielt er weder "TutTut.wav", obwohl dies viel weiter oben im Sketch geschehen soll, noch "Lauter.wav".
"Serial.print(Nummer[xy]);" stört jedoch wieder nicht...
Auch wenn "Nummer[0] == 10) & (Nummer[1] == 10) & (Nummer[2] == 10) & (Nummer[3] == 1)" nicht zutrift funktioniert es nicht.
Sobald "Serial.print" wieder //kommentiert ist, geht alles wieder...
Habt ihr eine Idee, an was das liegt?
Danke und Gruß