Bom dia pessoal.
Estou com um problema ao ler um arquivo txt e converter parte da leitura do arquivo em numerico. Alguem poderia me ajudar?
Código com erro:
#include <SPI.h>
#include <SD.h>
File myFile;
int segundos, minutos, horas, dias, in_acao; //variáveis do relógio
char datalog[8], v_segundos[2], v_minutos[2], v_horas[2], v_dias[2];
int cont = 0;
void setup() {
Serial.begin(9600);
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
else {
if (SD.exists("Dados.txt")) {
// re-open the file for reading:
myFile = SD.open("dados.txt");
if (myFile) {
while (myFile.available()) {
datalog[cont] = myFile.read();
cont ++;
}
datalog[8] = '\0';
myFile.close();
Serial.println(datalog);
v_segundos[0] = datalog[6];
v_segundos[1] = datalog[7];
v_segundos[2] = datalog[8];
v_minutos[0] = datalog[4];
v_minutos[1] = datalog[5];
v_minutos[2] = datalog[8];
v_horas[0] = datalog[2];
v_horas[1] = datalog[3];
v_horas[2] = datalog[8];
v_dias[0] = datalog[1];
v_dias[1] = datalog[0];
v_dias[2] = datalog[8];
Serial.println (v_segundos);
Serial.println (v_minutos);
Serial.println (v_horas);
Serial.println (v_dias);
segundos = atoi (v_segundos);
minutos = atoi (v_minutos);
horas = atoi (v_horas);
dias = atoi (v_dias);
}
}
}
}
void loop() {
relogio();
}
void relogio()
{
segundos ++;
//int cont = 0;
if (segundos > 59)
{
segundos = 0;
minutos++;
if (minutos > 59)
{
minutos = 0;
horas++;
if (horas > 23)
{
horas = 0;
dias ++;
if (dias > 21)
{
dias = 0;
}
}
} //end if minutos
} //end if segundos
if (SD.exists("Dados.txt")) {
SD.remove("Dados.txt");
}
myFile = SD.open("Dados.txt", FILE_WRITE);
if (myFile) {
if (dias < 10)
{
myFile.print("0");
}
myFile.print(dias);
if (horas < 10)
{
myFile.print("0");
}
myFile.print(horas);
if (minutos < 10)
{
myFile.print("0");
}
myFile.print(minutos);
if (segundos < 10)
{
myFile.print("0");
}
myFile.print(segundos);
myFile.close();
} else {
// if the file didn't open, print an error:
Serial.println("error opening Dados.txt");
}
delay (1000);
} //end relogio