Aiuto ...per favore...su lettura valore da Sd

Buongiorno a tutti i ragazzi......
volevo chiedervi un aiuto se era possibile.....praticamente riesco a leggere e scrivere valori su SD , ovviamente creando un documento.txt
Inoltre una volta letto riesco a visualizzare il valore su LCD.
Il mio problema è che quel valore che visualizzo sul display, vorrei utilizzarlo come se fosse un valore inserito da tastierino(keypad) per poi premere ENTER ed assegnare quel valore ad una variabile.
Mi potete per favore dare una mano?????

Il quesito posto è incomprensibile, lo leggi da sd e lo visualizzi, lo vuoi anche memorizzare in una variabille? Cosa c'entra la tastiera? Se metti anche il programma magari è meglio, inoltre chiarisci bene cosa succede e cosa vorresti che succedesse e magari dettaglia meglio il problema

penos tu stia visualizzando su LCD, non si sa se su riga o su colonna, una serie di "valori" presi da un file txt...quindi suppongo tu voglia selezionare uno di questi valori, muovendo un cursore (?), saltando di tab in tab(?), e premendo quello che dovrebbe essere il tuo ENTER associare il valore ad una variabile...giusto?

ESATTO...precisamente nel file.txt c'è un solo valore tipo 125.14 che parte dall'inizio del documento.Io riesco a visualizzare su LCD questo valore, ma non riesco a "catturarlo", diciamo.
Quindi mi servirebbe un comando che una volta visualizzato e premuto ENTER sia assegnato ad una variabile.

Non si capisce lo stesso, il problema non è "metterlo in una variabile", cosa che probabilmente già fai visto che leggi quel testo da un file, ma immagino che sia invece il problema di come convertire la stringa "125.14" in un valore float 125,14.
Ma facci vedere sto sketch, così capiamo meglio e possiamo darti indicazioni più precise.

Scusate …ma Orso2001 ha capito il problema solo gli altri non l hanno capito
Praticamente visualizzo perfettamente su LCD il valore 125.14 letto da sd( questo valore mi cambia in base ai litri che scorrono attraverso un sensore di flusso…e l ultimo valore viene scritto sul .txt della sd)…dopo di ciò ,voglio che premendo ENTER da keypad quel 125.14 sia assegnato ad una variabile…anziché digitarlo ogni volta da keypad.
Tutto qui il problema

Quale keypad ? Mancano info

Se hai visualizzato il valore su lcd, lo hai già in una variabile.
Sai usare il keypad ? Se premi enter sai come saperlo nello sketch ?
Se si, if premutoenter miavar=variabilelettura;

Allora...più tardi posto tutto....
Il keypad é il tastierino 5x4 per inserire altri valori

ciao...come detto da docdoc se posti il tuo programma si capisce da dove si parte...poi...il valore che range ha (minimo-massimo)...quanti decimali vuoi utilizzare?

Scusate il programma contiene 2384 righe, non penso che sia il caso postarlo.
Riepilogo:
Arduino MEGA
Modulo RTC
Modulo RFID
Ethernet SHIELD
Sensore di FLUSSO
STAMPANTE TTL
BUZZER
MODULO 4 RELE'
Questo è l' hardware utilizzato.
I valori vanno da 0 a 2000 ,ma in ogni caso non è questo il problema anche se fossero negativi .....a me serve solo assegnare quel valore visualizzato su LCD ad una variabile.

SD.remove("RIMASTI.txt");
miofile.close();
miofile = SD.open("RIMASTI.txt",FILE_WRITE);
miofile.print(LITRI);
miofile.close();
- - -  - - - - - - - - - - - - - - - - --  -  -  - -  -  - -  - - -  - -  - -  
if(SD.begin(4)==true)
{

}
 
else
{

while(true);
}
miofile=SD.open("RIMASTI.txt");
if(miofile==true)
{
lcd.print("ML RIMASTI:");

while(miofile.available())
{
lcd.write(miofile.read());
}
miofile.close();

Questa è la parte di codice che cancella, scrive e legge il valore da SD.
Il codice completo di per se funziona abbastanza bene:
gestisce il tempo di funzionamento dei relè con i minuti impostati , fa il conteggio dei litri di acqua che attraversano il sensore, visualizza data e ora con la possibilità di modificarli,legge le tessere RFID e poi stampa tutto il processo .

In conformità al regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More → Modify che si trova in basso a destra del tuo post) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà sistemato il codice come da regolamento, nessuno ti potrà rispondere, quindi ti consiglio di fare il tutto al più presto. :wink:

Il codice se troppo lungo lo puoi allegare come file

ciao,

rispetto il regolamento...a dopo

Perdonatemi....sono nuovo del forum....
penso che dovrebbe andare bene

Perfetto grazie mille per il rispetto del regolamento.
In ogni caso se tu la

miofile.read()

invece di spararla così com'è all'lcd la metti in una variabile usando la funzione che converte le stringhe in float (credo che se il metodo restituisce una stringa esista il metodo toFloat() ) del tipo

float mioValore; //definita come globale o come meglio ti torna
e poi
mioValore = miofile.read().toFloat();  /Non so se funziona va provato ed eventualemente adattato
lcd.print(mioValore);

hai quello che ti serve ovvero il valore letto dalla sd in una variabile che poi potrai usare come meglio credi per simulare l'immissione dal keypad

Anzi credo che tu possa fare

mioValore = miofile.parseFloat();

Gentile fabpolli, grazie per il consiglio, ma forse sbaglio qualcosa...non funziona
Praticamente ho impostato questo

LITRI= miofile.parseFloat();

ma il valore mi parte sempre da zero

Guarda non sono pratico della libreria SD, ho dato un suggerimento guardando un po' in giro su internet e sul forum, forse nel file c'è scritto anche altro e la parseFloat fallisce o cose simili, non so il tipo restituito dal metodo read e non so se esiste qualcosa di migliore/più rapido ma de fosse una String è potresti usare il metodo tocharArray() e mettere la lettura in un array di char e poi usare la funzione atof per convertirlo in float

mi potresti dare un esempio con array.....tochar???

Il reference del metodo della libreria è qui
Un piccolo tutorial per converire una string in arrayd i char può essere questo
Alro esempio può essere questo

Vediamo se ho capito io

Tu hai sulla SD un file che contiene una sola riga
In questa riga è solo un numero, che è con la virgola
A proposito, virgola o punto?
Per l’esattezza sarebbe la rappresentazione a caratteri di un numero, ma va bene…
Il tuo problema è di scrivere questo numero in una variabile float

Non è per nulla difficile, senza troppe complicazioni o usi di String o roba simile

La versione per variabili intere di 'sta cosa è banale, è scritta nella “bibbia” (il K&R)
Per la versione float basta aggiungere poco

È come ho capito?