Salve, ho fatto diversi progetti tipo datalogger su SD e non ho avuto problemi, adesso vorrei fare uno programma che legge un valore dalla SD.
Semplificando, ho messo il testo "14" all'interno del file test.txt e devo leggere questo valore (2 caratteri prima dell'EOF) e poi confrontarlo per vedere se ho letto il valore 14 che attendevo. Ho provato con diversi metodi suggeriti da diversi utenti di questo forum, vedendo altri post simili, ma non va, non so se è l'ora tarda o se non ci arrivo io.
posto il codice semplificato ma completo:
#include <SPI.h>
#include <SD.h>
const int chipSelect = 4;
String inString = "";
void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
return;
}
Serial.println("card initialized.");
File dataFile = SD.open("test.txt");
if (dataFile) {
while (dataFile.available()) {
Serial.write(dataFile.read()); //scrive 14 che legge dalla SD
inString += char(dataFile.read()); //ho provato anche senza char, ma non funziona lo stesso
}
dataFile.close();
Serial.print(inString); //qui non scrive niente
}
else {
Serial.println("error opening datalog.txt");
}
}
void loop() {
if (inString=="14") Serial.println ("ok"); // qui non scrive niente - so di essere nel loop, è una prova
}
Grazie a chi mi potrà aiutare