#include <SD.h>
#include <SPI.h>
int CS_PIN = 10;
File file;
void setup()
{
Serial.begin(9600);
while (!Serial) {
}
Serial.print("Iniciando cartão SD...");
if (!SD.begin(CS_PIN)) {
Serial.println("Falha na leitura do cartão.");
while (1);
}
Serial.println("Cartão iniciado.");
String nomeArquivo = "teste.txt";
/*Abrindo txt*/
file = SD.open(nomeArquivo);
if(file){
/*Variáveis*/
String linha = ""; /*texto da linha lida*/
char letra; /*Caractere lido*/
int countLinha = 0; /*numero da linha*/
int tamLinha = 0; /*tamanho da linha*/
int tamVetor = 0; /*tamanha do vetor(Quantidade de informações)*/
while (file.available()) {
if(file.read() == '\n'){
tamVetor++;
}
}
char vetor[tamVetor]; /*Vetor Total*/
/*Varredura dos txt*/
while (file.available()) {
tamLinha++;
letra = file.read();
linha += letra; /*Transformando linha em string*/
if(letra == '\n'){
char linhaChar[tamLinha];
linha.toCharArray(linhaChar, tamLinha); /*transformando string em char*/
vetor[countLinha] = linhaChar; /*salvando linha na posição correspondente do vetor*/
countLinha++;
/*resetando variáveis*/
String linha = "";
char letra;
int tamLinha = 0;
}
}
/*Imprimindo no serial as posições do vetor*/
for (int i = 0; i <= tamVetor; i++) {
Serial.println(vetor[i]);
}
/*Fechando txt*/
file.close();
}
else{
Serial.println("Erro ao abrir o arquivo");
}
}
void loop(){
}
Boa tarde pessoal, sou iniciante com arduino, e comecei a fazer alguns testes com o modulo de cartao sd.
Estou tentando ler linha por linha de um arquivo de texto do meu sd card e então salvar cada linha em uma posição do vetor, porém quando efetuei o primeiro teste no código, percebi que não poderia salvar uma string em um posição do vetor, então tentei transformar minha string em um char usando o ".toCharArray", mas não funcionou da forma como deveria, alguém poderia me ajudar?
O print do arquivo de texto e do serial está em anexo


