Go Down

Topic: Data log (Read 70 times) previous topic - next topic

Rodrigoooads

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

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy