Estou tentando fazer com que o meu UNO leia um arquivo do SD com 200 int para acionar um AR. Quando faço a primeira vez , funciona corretamete mas depois quando vou acionar outra vez ele não chega a funcionar perfeitamente, no Serial Monitor ele não printa todo o arquivo lido e simplesmente para.
Seria memória? Se sim, teria como eu esvaziar ela para eu conseguir ler uma nova linha com novos 200 ints?
#include <SD.h>
#include <IRremote.h>
File myFile;
char caracter1;
String str1 = "";
unsigned int aux[200];
IRsend irsend;
void setup(){
Serial.begin(9600);
Serial.println("Inicializando");
pinMode(10, OUTPUT);
if(!SD.begin(4)){
Serial.println("Falha na incializacao");
}
}
void lerSD(int linha){
myFile = SD.open("AR.txt");
if(myFile){
unsigned long linhaEspec = 850 * linha;
Serial.print("linha: ");
Serial.println(linhaEspec);
myFile.seek(linhaEspec);
int laco = 0;
for(int i = 0; i <= 849; i++){
caracter1 = myFile.read();
if(caracter1 != ','){
str1.concat(caracter1);
}
else{
Serial.print(str1 + ";");
//int val = str1.toInt();
aux[laco] = str1.toInt();
//Serial.println(laco);
laco++;
str1 = "";
}
}
myFile.flush();
myFile.close();
}
irsend.sendRaw(aux,200,38);
}
void loop(){
if(Serial.available() > 0){
char opcao = Serial.read();
if(opcao == 'l'){
lerSD(0);
Serial.println("Opcao 1");
}
if(opcao == 'd'){
lerSD(1);
Serial.println("Opcao 1");
}
}
}
}