Utilizzare la EEPROM e salvare dati in modo permanente
Obiettivo: Salvare dati in modo permanente nella memoria EEPROM di Arduino.
Componenti Elettronici:
- Arduino UNO
Teoria: Arduino UNO è una piattaforma HW dotata di Microcontrollore ATMega328P, questo dispositivo è dotato di tre differenti tipologie di memoria interna
- FLASH 32 KB (Memoria allo stato solido): Memoria non volatile nella quale viene memorizzato il programma (include anche il bootloader (0,5 KB).
- SRAM 2 KB (Static RAM): Memoria volatile utilizzata per memorizzare le variabili e le costanti del software.etc)
- EEPROM 1KB (Electrically Erasable Programmable ROM): Memoria non volatile utilizzate per salvare le differenti configurazioni del programma.
E’ possibile utilizzare la EEPROM di Arduino al fine di memorizzare delle informazioni in modo permanente e che non vengano cancellate in mancanza di alimentazione. La Memoria EEPROM di Arduino UNO è pari a 1Kb = 1024 spazi o celle in cui si possono memorizzare i dati (numeri compresi tra 0 e 255).
E’ importante considerare che, se si prova a memorizzare un numero negativo oppure un numero maggiore di 255, i valori memorizzati risultano errati.
Per potere utilizzare la memoria EEPROM interna è necessario includere la specifica liberia “EEPROM.h”. Non sono necessari componenti hardware ulteriori.
Le principali funzioni utilizzate per gestire la memoria EEPROM sono:
- EEPROM Clear: Cancella i Byte nella EEPROM.
- EEPROM Read: Legge il valore memorizzato nella EEPROM.
- EEPROM Write: Memorizza il valore nella EEPROM
Codice: Esempio di una scrittura su EEPROM
Per potere scrivere dati nella EEPROM è necessario includere la libreria “EEPROM.h”, nel dettaglio la funzione utilizzata è:
EEPROM.write(address, value)
dove address è il parametro che indica l’area di memoria dove scrivere il dato (da 0 a 1023), e value è il valore da scrivere in EEPROM (da 0 e 255).
Codice: Esempio di una lettura su EEPROM
Per potere leggere dati nella EEPROM è necessario includere la libreria “EEPROM.h”, nel dettaglio la funzione utilizzata è:
value = EEPROM.read(address)
dove address è il parametro che indica l’area di memoria dove leggere il dato (da 0 a 1023), e value è il valore del dato letto dalla EEPROM (da 0 e 255).