Convertire variabile in nome

La versione di @Datman è basata più o meno sullo stesso principio e potrebbe impegnare un po' meno RAM. Dovresti però riorganizzarla come funzione visto che usi questa "ricerca" in due punti distinti del software.

Io però ho provato a compilare il tuo sketch (con la funzione trovaIndice()) ed ottengo questo risultato

C'è il warning sulla RAM, ma considerando che non fai moltissima allocazione dinamica di oggetti che potrebbero usare molta RAM (tipo variabili String) e sono quasi tutte variabili globali, secondo me puoi tranquillamente ignorare il warning e vivere sereno.

Se la libreria dell'oled e quella della SD supportano la macro F(), puoi risparmiare qualche byte di memoria con le istruzioni dove usi delle "literal string" che finiscono inutilmente in RAM (ovviamente il risparmio va a discapito dell'occupazione memoria in flash).
Ad esempio:

data.println("Da Hr Tm La Lo At Km Di Ve He Co Sa" );
può diventare e risparmiare 36 byte
data.println(F("Da Hr Tm La Lo At Km Di Ve He Co Sa"));

oppure
oled.println("TUO NOME GPS");
diventa e sono altry 12/13 byte di RAM recuperati
oled.println(F("TUO NOME GPS"));
1 Like