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.

Schema Elettrico Arduino

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).