Come usare la libreria EEPROM in Arduino

Come usare la libreria EEPROM in Arduino
Nella programmazione Arduino quando uno schizzo viene caricato sulla scheda Arduino rimane lì ed è memorizzato nell'Arduino fino a quando non viene cancellato o viene caricato un altro schizzo. Questi dati sono archiviati nell'EEPROM costruito nell'Arduino. L'uso di Eeprom e della sua libreria è spiegato in questo seguente contesto.

Eeprom di Arduino

Questa memoria solo la lettura diversa dall'archiviazione offre la possibilità di modificare il contenuto dello schizzo usando le sue funzioni. Allo stesso modo, questa memoria è stata progettata per evitare il problema della difficoltà di cancellare i dati intercettati in passato. Le dimensioni EEPROM di diverse schede Arduino sono menzionate di seguito:

Controller Misurare
Arduino Uno, Arduino Nano, Arduino Mini (ATMEGA328) 1024 byte
Arduino Nano (ATmega168) 512 byte
Arduino Mega (ATMEGA2560) 4096 byte

L'acronimo Eeprom rappresenta "memoria solo per lettura permanente eliminabile elettronicamente". Esistono 8 tipi di funzione che possono essere eseguiti utilizzando la libreria EEPROM. Questa libreria viene già fornita con il software Arduino IDE, quindi non è necessario installare la libreria:

  • Scrivi la funzione di eeprom
  • Leggi la funzione di eeprom
  • Metti la funzione di eeprom
  • Ottieni funzione di EEPROM
  • Aggiorna la funzione di EEPROM

Scrivi la funzione di eeprom

Quando i dati devono essere salvati in qualsiasi indirizzo, possono essere eseguiti utilizzando il Eeprom.scrivere() funzione. I dati verranno archiviati fino a quando non vengono cancellati o aggiornati.

Nel codice prima viene inizializzata la libreria per la memoria e quindi la variabile per l'indirizzo viene dichiarata e, nel ciclo, l'EEPROM.La funzione write () viene utilizzata per scrivere sul valore sull'indirizzo.

Dopo ogni iterazione l'indirizzo cambia e lo stesso valore viene aggiunto a tutti gli indirizzi della EEPROM. Allo stesso modo, i dati salvati utilizzando la funzione di scrittura.

Il programma verrà eseguito fino a quando gli indirizzi non diventeranno uguali alla lunghezza totale dell'EEPROM e la lunghezza della memoria varia da una scheda all'altra. In Arduino Uno è di 1 chilo byte, quindi il programma verrà eseguito quando tutti gli indirizzi 1000 hanno dato il valore di 200.

#includere
int indirizzo = 0;
valore int = 200;
void setup ()
Seriale.Inizia (9600);

void loop ()
Eeprom.scrivere (indirizzo, valore);
Seriale.print ("Questo indirizzo:");
Seriale.println (indirizzo);
Seriale.print ("ha valore di");
Seriale.println (valore);
Seriale.println ();
indirizzo = indirizzo + 1;
if (indirizzo == eeprom.lunghezza())
indirizzo = 0;

ritardo (500);

Produzione

Leggi la funzione di eeprom

Per leggere qualsiasi dati da qualsiasi indirizzo della memoria il Eeprom.Leggere() viene utilizzata la funzione. Per descrivere ulteriormente il funzionamento dell'Eeprom.Leggi () Funzione Viene fornito un codice di esempio.

Dal momento che nel programma precedente abbiamo dato il valore di 200 a ciascun indirizzo della memoria, quindi quando leggiamo ogni indirizzo della memoria usando EEPROM.Leggi () funzione Visualizza la stessa uscita:

#includere
int indirizzo = 0;
valore byte;
void setup ()
Seriale.Inizia (9600);

void loop ()
value = eeprom.leggere (indirizzo);
Seriale.print ("Questo indirizzo:");
Seriale.println (indirizzo);
Seriale.print ("ha valore di");
Seriale.println (valore);
Seriale.println ();
indirizzo = indirizzo + 1;
if (indirizzo == eeprom.lunghezza())
indirizzo = 0;

ritardo (500);

Produzione

Metti la funzione di eeprom

Per archiviare i dati sotto forma di un array o i dati sono di tipo float Eeprom.Mettere() viene utilizzata la funzione. Per capire l'uso di eeprom.Put () funzione Viene ulteriormente spiegato utilizzando un semplice programma Arduino.

Nel codice prima il valore con il tipo di dati float è memorizzato nell'indirizzo 0 della memoria e quindi viene costruita una struttura con i dati del nome che ha un valore di tipo byte, un valore di tipo float e un valore del carattere.

La dimensione per l'intera struttura è di 12 byte con 4 byte per i valori di tipo intero e float e 8 byte per il valore del carattere.

L'indirizzo per il tipo di galleggiante è inizializzato come zero mentre l'indirizzo per la struttura è dopo il byte successivo trovato dopo il valore del galleggiante.

#includere
Dati struct
Float Value1;
value byte2;
Word word [8];
;
void setup ()
Seriale.Inizia (9600);
Float f = 967.817;
int eeaddress = 0;
Eeprom.put (eeaddress, f);
Seriale.print ("Questo indirizzo:");
Seriale.println (eeaddress);
Seriale.print ("ha valore float di");
Seriale.println (f);
Seriale.println ();
Data Values ​​=
2.65,
89,
"Ciao!"
;
eeaddress += sizeof (float);
Eeprom.put (eeaddress, valori);
Seriale.print ("Questo indirizzo:");
Seriale.stampa (eeaddress);
Seriale.print ('\ t');
Seriale.print ("ha la struttura che ha le informazioni:");
Seriale.println ();
Seriale.println (valori.valore1);
Seriale.println (valori.valore2);
Seriale.println (valori.parola);

void loop ()

Produzione

Ottieni funzione di EEPROM

Per recuperare i dati memorizzati nei tipi di dati float o sotto forma di struttura viene utilizzata la funzione GET. Questa funzione è diversa dalla semplice funzione di lettura e scrittura. L'esempio per l'uso di Eeprom.Ottenere() funzione fornita che fornirà un chiaro concetto di funzione:

#includere
void setup ()
float f = 0.00;
int eeaddress = 0;
Seriale.Inizia (9600);
Seriale.print ("Leggi il galleggiante da eeprom:");
Eeprom.get (eeaddress, f);
Seriale.println (f, 4);
StructicValues ​​();

Dati struct
Float Value1;
value byte2;
Word word [8];
;
void struggerValues ​​()
int eeaddress = sizeof (float);
valori di dati;
Eeprom.get (eeaddress, valori);
Seriale.println ("Leggi la struttura da eeprom:");
Seriale.println (valori.valore1);
Seriale.println (valori.valore2);
Seriale.println (valori.parola);

void loop ()

Qui nel codice un valore float e un valore della struttura memorizzato nella memoria di Arduino viene recuperato che era stato precedentemente archiviato usando EEPROM.Put () funzione.

Produzione

Aggiorna la funzione di EEPROM

Quando i dati su qualsiasi indirizzo devono essere aggiornati Eeprom.aggiornamento() viene utilizzata la funzione. Questa funzione viene utilizzata solo quando ci sono già alcuni dati sul rispettivo indirizzo. Allo stesso modo, questa funzione aggiorna i dati solo se è diversa dai dati precedentemente salvati.

#includere
int indirizzo = 4;
valore int;
int value1 = 300;
void setup ()
Seriale.Inizia (9600);
value = eeprom.leggere (indirizzo);
Seriale.print ("Questo indirizzo:");
Seriale.println (indirizzo);
Seriale.print ("precedente valore di");
Seriale.println (valore);
Seriale.println ();
Eeprom.aggiornamento (indirizzo, valore1);
Seriale.print ("Questo indirizzo:");
Seriale.println (indirizzo);
Seriale.print ("valore aggiornato di");
Seriale.println (value1);
Seriale.println ();

void loop ()

Nel codice di esempio i dati sull'indirizzo 4 vengono aggiornati poiché il valore precedente in questo indirizzo era 44. I dati dell'indirizzo 4 sono stati cambiati da 44 a 300.

Ai fini dimostrativi l'EEPROM.La funzione read () viene utilizzata per recuperare i dati memorizzati nell'indirizzo 4 e quindi un valore aggiornato viene memorizzato nell'indirizzo 4 utilizzando EEPROM.funzione update ().

Produzione

Conclusione

Le librerie nella programmazione Arduino sono utilizzate principalmente per ottenere alcune funzionalità extra dell'hardware interfacciate. L'EEPROM è la memoria della scheda Arduino a cui è possibile accedere utilizzando EEPROM.Biblioteca H. Utilizzando le sue funzioni, i dati archiviati nell'Arduino possono essere modificati o cancellati. Questo articolo spiega cinque funzioni principali che possono essere utilizzate per modificare o cancellare i dati di Arduino.