Ciao!
In questo post vi parlo di alcune semplici prove per iniziare ad utilizzare la memoria EEPROM di Arduino.
Come già saprete, in questa memoria è possibile memorizzare dati che non perderete allo spegnimento della scheda. Un po' come avere un (piccolissimo) hard disc, all'interno del vostro Arduino.
Certo, questo spazio di archiviazione è piuttosto ridicolo se comparato ad un vero disco rigido, pensate che è di solamente 1KB nell'Arduino Uno, ma sarò sufficiente per l'utilizzo in moltissimi progetti.
L'uso che maggiormente ne faccio è quello di memorizzare parametri di lavoro che passo alla scheda, via bluetooth o wifi magari, e che non voglio perdere una volta che la scheda viene spenta.
Ma è possibile addirittura usarla per un semplicissimo datalogger.
Per scrivere e leggere un dato sulla memoria EEPROM, esistono vari metodi, in questo post vedremo il Put e il Get, che a differenza del Read e Write ci semplificano il lavoro quando vogliamo salvare dati di dimensioni maggiori di 1Byte (valore da 0 a 255).
Passiamo subito al primo esempio concreto,
Primo esempio di scrittura sulla EEPROM con il metodo Put/Get
Questo sotto invece è un esempio di utilizzo dei metodi Put/Get con una struttura
Una cosa a cui prestare attenzione è che la EEPROM ha un numero limitato di cicli di scrittura (100k), può sembrare un numero enorme, ma può diventare molto piccolo se il codice non è ottimizzato.
Un'altra funzione della libreria, che ci aiuta per questa evenienza, si chiama Update, e scrive un byte solo se è variato rispetto a quello già scritto nella memoria.
Infine se volete leggere i valori dei singoli byte presenti nella EEPROM, trovate un codice utile nella pagina della funzione Read
In questo post vi parlo di alcune semplici prove per iniziare ad utilizzare la memoria EEPROM di Arduino.
Come già saprete, in questa memoria è possibile memorizzare dati che non perderete allo spegnimento della scheda. Un po' come avere un (piccolissimo) hard disc, all'interno del vostro Arduino.
Certo, questo spazio di archiviazione è piuttosto ridicolo se comparato ad un vero disco rigido, pensate che è di solamente 1KB nell'Arduino Uno, ma sarò sufficiente per l'utilizzo in moltissimi progetti.
L'uso che maggiormente ne faccio è quello di memorizzare parametri di lavoro che passo alla scheda, via bluetooth o wifi magari, e che non voglio perdere una volta che la scheda viene spenta.
Ma è possibile addirittura usarla per un semplicissimo datalogger.
Per scrivere e leggere un dato sulla memoria EEPROM, esistono vari metodi, in questo post vedremo il Put e il Get, che a differenza del Read e Write ci semplificano il lavoro quando vogliamo salvare dati di dimensioni maggiori di 1Byte (valore da 0 a 255).
Passiamo subito al primo esempio concreto,
Primo esempio di scrittura sulla EEPROM con il metodo Put/Get
- #include
- char ArrayToWrite[10] = "TenChars!" ;
- char ArrayToRead[10];
- int Address;
- void setup() {
- Address = 0;
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for native USB port only
- }
- //One simple call, with the address first and the object second.
- EEPROM.put(Address, ArrayToWrite);
- Serial.println("Data writed!");
- EEPROM.get(Address, ArrayToRead);
- Serial.print("Readed: ");
- Serial.println(ArrayToRead);
- }
- void loop() {
- /* Empty loop */
- }
Questo sotto invece è un esempio di utilizzo dei metodi Put/Get con una struttura
- #include
- struct MyObject {
- float field1;
- byte field2;
- char name[10];
- };
- int Address;
- void setup() {
- Address = 0;
- Serial.begin(9600);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for native USB port only
- }
- MyObject customVar = {
- 3.14f,
- 65,
- "Working!"
- };
- //One simple call, with the address first and the object second.
- EEPROM.put(Address, customVar);
- Serial.println("Data writed!");
- EEPROM.get(Address, customVar);
- Serial.print("Readed: ");
- Serial.print(customVar.field1);
- Serial.print(", ");
- Serial.print(customVar.field2);
- Serial.print(", ");
- Serial.println(customVar.name);
- }
- void loop() {
- /* Empty loop */
- }
Una cosa a cui prestare attenzione è che la EEPROM ha un numero limitato di cicli di scrittura (100k), può sembrare un numero enorme, ma può diventare molto piccolo se il codice non è ottimizzato.
Un'altra funzione della libreria, che ci aiuta per questa evenienza, si chiama Update, e scrive un byte solo se è variato rispetto a quello già scritto nella memoria.
Infine se volete leggere i valori dei singoli byte presenti nella EEPROM, trovate un codice utile nella pagina della funzione Read
Questo è tutto, ciao!
Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!
Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!
Nessun commento:
Posta un commento
Lascia un commento qui sotto, ti risponderò il prima possibile!