Salve a tutti!
Finalmente dopo un pò di pratica, la mia conoscenza sulla programmazione e arduino da -1 è arrivata a 0 :D! Nel mio nuovo progetto, ho dei file di testo che al momento che spingo un determinato pulsante, mi legge il relativo file situato nella SD. Sinceramente è difficile trovare buoni tutorial su questo "campo". Girovagando sul forum ho trovato questo leggere file .csv da sd card - Software - Arduino Forum dove l'utente Pablos ha fatto un esempio
void read_sd_config()
{
String ReadLine;
char charBuf[40];
if(file.open(&root, "file.csv", O_READ))
{
int16_t c;
while ((c = file.read())>0)
{
ReadLine += (char)c;
if((char)c=='\n')
{
//--------------------------------------- LETTURA LINEE FILE-------------------------------
Serial.print(ReadLine);//debug
//-----------------------------------------------------------------------------------------
ReadLine.toCharArray(charBuf, 40);
get_data(charBuf);
ReadLine="";
}
}
}
else
{
Serial << F("File inesistente o errore SD ");
}
}
void get_data(char *charBuffer)
{
int temp_dato[]= {0,0,0,0}; //<<<<< (int) se usi numeri oltre il 255 altrimenti byte
char *p = charBuffer;
byte i = 0;
while (*p != '\0')
{
if (*p == ',') { ++i; ++p; continue;} // separatore usa quello che ti pare
if (isdigit(*p)) //questo controlla che siano solo numeri, se c'e' una lettera o uno spazio vuoto la salta
{
temp_dato[i] *= 10;
temp_dato[i] += (*p - '0');
}
++p;
}
//--------------------test di lettura dell'array verifica se e' corretta la scrittura
for (byte ii = 0; ii < 4; ii++)
{
Serial.println((String)temp_dato[ii]+" ");//debug
}
//---------------------------------------------------------------------
}
ed è proprio quello che cercavo! Però come posso ottenere il primo temp_dato se sono lettere? esempio