Buongiorno,
sto continuando a fare prove con la SD card e con la manipolazione del file su SD card.
Quello che vorrei fare è poter scrivere, al verificarsi di un evento, su un file .txt una stringa in una determinata posizione.
Mi spiego meglio:
il file txt contiene il seguente contenuto:
Ingressi: 0_0_0_0_0_0;
Uscite: 0_0_0_0_0_0;
Analogica: 0_0_0;
Gradi: 00_00;
Puntatore: 0;
Io vorrei che ogni volta che un ingresso cambia di stato, "arduino" vada ad aprire il file txt, leggere la riga "Ingressi" e stampare dopo lo spazio il nuovo stato dell'ingresso. La stringa 0_0_0_0_0_0 rappresentano 6 ingressi, quindi se cambia di stato l'ingresso 3, la stringa da andare a scrivere sarà 0_0_1_0_0_0, non creare una nuova riga ma andando a sostituire quella già esistente, cioè vorrei questo :
Ingressi: 0_0_1_0_0_0;
Uscite: 0_0_0_0_0_0;
Analogica: 0_0_0;
Gradi: 00_00;
Puntatore: 0;
e non questo:
Ingressi: 0_0_0_0_0_0;
Uscite: 0_0_0_0_0_0;
Analogica: 0_0_0;
Gradi: 00_00;
Puntatore: 0;
Ingressi: 0_0_1_0_0_0;
Ho provato a buttare giù del codice giusto per prova
#include <SPI.h>
#include <SD.h>
File myFile;
char c;
boolean startRead = false;
void setup() {
Serial.begin(9600);
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
myFile = SD.open("file.txt");
if (myFile) {
while (myFile.available()) {
do {
c = myFile.read();
if (c == 'I') {
startRead = true;
}
if (startRead == true && c == ' ') {
myFile = SD.open("file.txt", FILE_WRITE);
myFile.println("stampaIngressi");
startRead = false;
}
} while (c != -1);
}
}
myFile.close();
}
void loop() {
}
ma la stringa "stampaIngressi" mi viene stampata a fine file e non dopo Ingressi: .
Qualcuno ha qualche suggerimento?