Não consigo importar dados do SD card

Estou com uma programação que vai salvar dados em um cartão SD, estou conseguindo salvar os dados corretamente no cartão em formato .txt. Porem, preciso utilizar os dados salvos em uma variavel int e não estou conseguindo realizar a conversão dos dados. Por exempo: Vou salvar um dado "22" no cartão, ele salvar corretamente e consigo ler este dado. Porem preciso pegar esse valor 22 e transforma-lo em uma variavel int de valor 22 e ai está minha dificuldade, na hora de ler e converter esse valor 22 para int não estou conseguindo.

#include <SD.h>
#include <SPI.h>

File myFile;

int pinoSS = 10; // Pin 53 para Mega / Pin 10 para UNO
byte i;
void setup() { // Executado uma vez quando ligado o Arduino

Serial.begin(9600); // Define BaundRate
pinMode(pinoSS, OUTPUT); // Declara pinoSS como saída

if (SD.begin()) { // Inicializa o SD Card
Serial.println("SD Card pronto para uso."); // Imprime na tela
}

else {
Serial.println("Falha na inicialização do SD Card.");
return;
}

myFile = SD.open("temp.txt", FILE_WRITE);

if (myFile) { // Se o Arquivo abrir imprime:
Serial.println("Escrevendo no Arquivo tempo.txt"); // Imprime na tela
//myFile.print("tempo: "); // Escreve no Arquivo
myFile.println("22"); // Escreve no Arquivo
myFile.close(); // Fecha o Arquivo após escrever
Serial.println("Terminado."); // Imprime na tela
Serial.println(" ");
}

else { // Se o Arquivo não abrir
Serial.println("Erro ao Abrir Arquivo velocidade.txt"); // Imprime na tela
}

myFile = SD.open("temp.txt"); // Abre o Arquivo

if (myFile) {
Serial.println("Conteúdo do Arquivo tempo:"); // Imprime na tela

while (myFile.available()) { // Exibe o conteúdo do Arquivo
//Serial.write(myFile.read());
i = myFile.read();
int y = int(i);
Serial.print(y);

}

myFile.close(); // Fecha o Arquivo após ler
}

else {
Serial.println("Erro ao Abrir Arquivo tempo.txt"); // Imprime na tela
}
}

void loop() {

// Como a função é executada somente uma vez, esta área permanece em branco

}

Olá, altere:

i = myFile.read();
int y = int(i);
Serial.print(y);

Por:

  String i = myFile.read();
  int y = i.toInt();
  Serial.print (y);

Saudações.

PS: esqueci: delete a declaração de "i"

byte i;
1 Like

Obrigado ! :grin:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.