Memorizzare stringa su Arduino anche senza alimentazione

Salve, ho creato un mio progetto con una tastiera 4x4 composta da numeri da 0 a 9 e le lettere A e B (gli altri tasti li ho usati per altro). Ora il problema è che ho una stringa con il codice di "default" che poi viene in seguito cambiato direttamente dalla tastiera quindi senza modificare il codice e di conseguenza dopo aver tolto la corrente il codice viene resettato a quello di default. Potreste scrivermi il codice per salvare la stringa "codice" sull'EEPROM e poi leggerlo pur non sapendo la lunghezza della stringa? Grazie

Cross posting vietato. Poi in sezione internazionale devi usare l'inglese: http://forum.arduino.cc/index.php?topic=339668.msg2341719#msg2341719

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni e a leggere il regolamento se non lo hai già fatto: Regolamento Qui una serie di link utili, non inerenti al tuo problema: - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - qui le pinout delle varie schede by xxxPighi: Pinout - qui una serie di link [u]generali[/u] utili: Link Utili

Sfrutta una cella della eeprom per sapere la lunghezza della stringa. Senza vedere il tuo codice, difficile aiutarti. Stringa come ? stringa del C classica o oggetto String ?

Il codice non te lo scrivo, ma ti do qualche suggerimento:

Un metodo semplice può essere di scrivere la lunghezza della stringa nel primo byte (o nei primi due, a seconda della lunghezza massima possibile) e poi un carattere della stringa dietro l'altro.

Meglio ancora sarebbe un approccio più "C-like": terminare la stringa scritta nella EEPROM con un carattere noto, tipo '\0'. In fase di lettura leggi finché non lo trovi o non raggiungi la dimensione della EEPROM stessa.

Enjoy :).

Potreste scrivermi il codice per salvare la stringa "codice" sull'EEPROM

non scriviamo codici per conto terzi, lo fai tu e poi ti aiutiamo dove non riesci, non è poi tanto difficile e ancor meno difficile è trovare parti di programmi già fatti.

Google+arduino+eeprom

eeprom write https://www.arduino.cc/en/Reference/EEPROMWrite

eeprom read https://www.arduino.cc/en/Reference/EEPROMRead

È molto difficile scrivere dei dati sulla EEprom quando va via l'aliemntazione. È piú facile modificare i dati memorizzati ogni volta che vengono modificati. Se hai problemi di mumero di scritture sulla EEprom usa per esempio i 56 Byte del RTC DS1307 oppure un FRAM della RAMTEK

Ciao Uwe

Non deve salvare quando manca alimentazione.

Ti da una scheda in mano con codice di accesso di default, poi l'utente ci mette il suo che va salvata sulla eeprom, fine (lo fa una volta sola). Quando torna alimentazione il programma confronta l'accesso utente col codice della eeprom.

Piuttosto salvatore, ti servirà un input con pulsante da premere per 30 sec per reimpostare il codice di default, altrimenti se perdi la nuova pass ti tocca ricompilare il programma.

Ma poi scusa, perchè non fai una lunghezza prestabilita di 4 o 6 o 8 caratteri?

Intanto grazie a tutti, allora per scrivere ho usato questo codice (se magari potreste dirmi almeno se è giusto) :

void setup () { char codice = {'00000000AB/0'}; }

void loop () { if (è stato premuto il tasto per cambiare password){ codice = {password + '\0'}; int i=0, addr=0; while (codice!='\0'){ EEPROM.write( addr, codice ); * i++;* * addr = addr + 1;* * if (addr == 1024){* * Serial.println("Non c'è abbastanza spazio!");* * break;* * }* * }* } dove "codice" è il codice di default e "password" la stringa che contiene i valori immessi dalla tastiera. Invece per leggerlo e inserirlo in una stringa per effettuare il controllo dovrei fare più o meno il contrario?

Ti consiglio di ripassare un po' come si gestiscono le stringhe in C :).

Ho iniziato da poco con Arduino

Beh, appunto! Cerca di capire bene quale è il tipo di dati da usare (array di caratteri), quali sono le funzioni da usare per misurarne la lunghezza, copiarle e manipolarle in generale, e come iterare su di esse.

Se capisci bene questri argomenti, far funzionare il tuo programma sarà un gioco da ragazzi!

Ma perchè non cerchi su google e ti studi gli esempi, poi te lo fai come vuoi tu? https://www.google.it/#q=arduino+password+eeprom