Hi Leute,
ich verzweifle grade etwas an einem Detail und hoffe, dass mir hier jemand kurz helfen könnte. Ich benutze grade die AnalogBinLogger Sketch aus der SDfat Library und hab diese um eine kleine Option (Eingabe p -> Ausgabe eines Druckwertes alle 0,2 sek) erweitert:
void loop(void) {
// discard any input
while (Serial.read() >= 0) {}
Serial.println();
Serial.println(F("type:"));
Serial.println(F("c - convert file to csv"));
Serial.println(F("d - dump data to Serial"));
Serial.println(F("e - overrun error details"));
Serial.println(F("r - record ADC data"));
Serial.println(F("p - display pressure"));
while(!Serial.available()) {}
char c = tolower(Serial.read());
if (ERROR_LED_PIN >= 0) {
digitalWrite(ERROR_LED_PIN, LOW);
}
// Read any extra Serial data.
do {
delay(10);
} while (Serial.read() >= 0);
if (c == 'c') {
binaryToCsv();
} else if (c == 'd') {
dumpData();
} else if (c == 'e') {
checkOverrun();
} else if (c == 'r') {
logData();
} else if (c == 'p') {
while (Serial.read() <= 0){
Serial.println ((analogRead(A0)*(8.0/1023.0)));
delay (200);
}
} else {
Serial.println(F("Invalid entry"));
}
}
#else // __AVR__
#error This program is only for AVR.
#endif // __AVR__
Wenn ich nun p eingebe, um mir meinen Druck zum Einstellen meiner Vorrichtung anzuzeigen, funktioniert es beim ersten Durchgang einwandfrei. Dann logge ich, konvertiere die Logdatei und würde gerne zum nächsten Durchgang ansetzen. Da allerdings bekomme ich keine richtigen Werte mehr, analogRead produziert nur noch die Ausgabe 0, obwohl Druck anliegt. Erst nach einem Reset läuft es wieder.
Wenn jemand weiß, woran dass liegt, wäre ich ihm äußerst dankbar. Der Sensor selbst funktioniert einwandfrei, ich hab ihn mit dem Multimeter überprüft.
MfG Fabian