Cómo usar la biblioteca Eeprom en Arduino

Cómo usar la biblioteca Eeprom en Arduino
En la programación de Arduino, cuando se sube un boceto en el tablero de Arduino, permanece allí y se almacena en el Arduino hasta que se borra u otro boceto se carga. Estos datos se almacenan en la EEPROM construida en el Arduino. El uso de EEPROM y su biblioteca se explica en este siguiente contexto.

Eeprom de Arduino

Esta memoria de solo lectura, aparte del almacenamiento, ofrece la opción de editar el contenido del boceto utilizando sus funciones. Del mismo modo, esta memoria fue diseñada para evitar el problema de la dificultad de borrar los datos que se interceptaron en el pasado. Los tamaños de EEPROM de diferentes tableros Arduino se mencionan a continuación:

Controlador Tamaño
Arduino Uno, Arduino Nano, Arduino Mini (ATMEGA328) 1024 bytes
Arduino Nano (ATMEGA168) 512 bytes
Arduino Mega (ATMEGA2560) 4096 bytes

El acrónimo EEPROM significa "Memoria de lectura permanente permanente electrónicamente borrable". Hay 8 tipos de funciones que se pueden realizar utilizando la biblioteca EEPROM. Esta biblioteca ya viene con el software Arduino IDE, por lo que no es necesario instalar la biblioteca:

  • Escribir función de EEPROM
  • Leer función de EEPROM
  • Poner la función de EEPROM
  • Obtener la función de EEPROM
  • Actualizar la función de EEPROM

Escribir función de EEPROM

Cuando los datos se guardan en cualquier dirección, se puede hacer utilizando el Eeprom.escribir() función. Los datos se almacenarán hasta que se borre o se actualice.

En el código primero se inicializa la biblioteca para la memoria y luego se declara la variable para la dirección y, en el bucle, el EEPROM.La función Write () se usa para escribir al valor en la dirección.

Después de cada iteración, la dirección cambia y se agrega el mismo valor a todas las direcciones del EEPROM. Del mismo modo, los datos guardados utilizando la función de escritura.

El programa se ejecutará hasta que las direcciones se vuelvan igual a la longitud total de la EEPROM y la longitud de la memoria varía de placa a otra. En Arduino Uno es de 1 kilo bytes, por lo que el programa se ejecutará cuando todas las 1000 direcciones han dado el valor de 200.

#incluir
int dirección = 0;
valor int = 200;
setup () void
De serie.comenzar (9600);

bucle void ()
Eeprom.escribir (dirección, valor);
De serie.imprimir ("esta dirección:");
De serie.println (dirección);
De serie.imprimir ("tiene valor de");
De serie.println (valor);
De serie.println ();
dirección = dirección + 1;
if (dirección == EEPROM.longitud())
dirección = 0;

retraso (500);

Producción

Leer función de EEPROM

Para leer cualquier dato de cualquier dirección de la memoria la Eeprom.leer() se utiliza la función. Para describir más a fondo el funcionamiento de la EEPROM.lectura () Función Se da un código de ejemplo.

Dado que en el programa anterior le hemos dado el valor de 200 a cada dirección de la memoria, por lo que cuando leemos cada dirección de la memoria utilizando el EEPROM.lectura () Función Muestra la misma salida:

#incluir
int dirección = 0;
valor de byte;
setup () void
De serie.comenzar (9600);

bucle void ()
valor = EEPROM.leer (dirección);
De serie.imprimir ("esta dirección:");
De serie.println (dirección);
De serie.imprimir ("tiene valor de");
De serie.println (valor);
De serie.println ();
dirección = dirección + 1;
if (dirección == EEPROM.longitud())
dirección = 0;

retraso (500);

Producción

Poner la función de EEPROM

Para almacenar los datos en forma de una matriz o los datos son de tipo flotante, entonces el Eeprom.poner() se utiliza la función. Para comprender el uso de EEPROM.Función PUT () Se explica más a fondo utilizando un programa Arduino simple.

En el código primero, el valor que tiene un tipo de datos flotante se almacena en la dirección 0 de la memoria y luego se construye una estructura de los datos de nombre que tiene un valor de tipo de byte, un valor de tipo flotante y un valor de caracteres.

El tamaño de toda la estructura es de 12 bytes que tienen 4 bytes para los valores de tipo entero y flotante y 8 bytes para el valor del carácter.

La dirección para el tipo de flotación se inicializa como cero, mientras que la dirección para la estructura es después del siguiente byte encontrado después del valor de flotación.

#incluir
Datos de estructura
valor flotante1;
Valor de byte2;
palabra de char [8];
;
setup () void
De serie.comenzar (9600);
flotante F = 967.817;
int eeaddress = 0;
Eeprom.poner (eaddress, f);
De serie.imprimir ("esta dirección:");
De serie.println (eaddress);
De serie.imprimir ("tiene un valor flotante de");
De serie.println (f);
De serie.println ();
valores de datos =
2.sesenta y cinco,
89,
"Hola!"
;
eaddress += sizeOf (float);
Eeprom.poner (eaddress, valores);
De serie.imprimir ("esta dirección:");
De serie.imprimir (eaddress);
De serie.imprimir ('\ t');
De serie.imprimir ("tiene estructura que tiene la información:");
De serie.println ();
De serie.println (valores.valor1);
De serie.println (valores.valor2);
De serie.println (valores.palabra);

bucle void ()

Producción

Obtener la función de EEPROM

Para recuperar los datos almacenados en los tipos de datos de flotación o en forma de estructura, la función get se usa. Esta función es diferente de la función simple de lectura y escritura. El ejemplo para el uso de Eeprom.conseguir() función proporcionada que dará un concepto claro de la función:

#incluir
setup () void
flotante f = 0.00;
int eeaddress = 0;
De serie.comenzar (9600);
De serie.imprimir ("Leer flotante de EEPROM:");
Eeprom.Obtener (eaddress, f);
De serie.println (f, 4);
estructuraValues ​​();

Datos de estructura
valor flotante1;
Valor de byte2;
palabra de char [8];
;
nulo estructuraValues ​​()
int eeaddress = sizeof (float);
valores de datos;
Eeprom.Get (eaddress, valores);
De serie.println ("Leer estructura de EEPROM:");
De serie.println (valores.valor1);
De serie.println (valores.valor2);
De serie.println (valores.palabra);

bucle void ()

Aquí en el código se obtiene un valor flotante y se obtiene un valor de estructura almacenado en la memoria Arduino que se almacenó previamente utilizando el EEPROM.Función PUT ().

Producción

Actualizar la función de EEPROM

Cuando los datos de cualquier dirección deben actualizarse el Eeprom.actualizar() se utiliza la función. Esta función solo se usa cuando ya hay algunos datos en la dirección respectiva. Del mismo modo, esta función solo actualiza los datos si son diferentes de los datos guardados previamente.

#incluir
Int dirección = 4;
valor int;
int value1 = 300;
setup () void
De serie.comenzar (9600);
valor = EEPROM.leer (dirección);
De serie.imprimir ("esta dirección:");
De serie.println (dirección);
De serie.imprimir ("Valor previamente de");
De serie.println (valor);
De serie.println ();
Eeprom.actualización (dirección, valor1);
De serie.imprimir ("esta dirección:");
De serie.println (dirección);
De serie.imprimir ("Valor actualizado de");
De serie.println (valor1);
De serie.println ();

bucle void ()

En el código de ejemplo, los datos en la dirección 4 se actualizan ya que el valor anterior en esta dirección fue 44. Los datos de la dirección 4 se cambiaron de 44 a 300.

Para fines de demostración, la EEPROM.La función Read () se usa para obtener los datos almacenados en la dirección 4 y luego se almacena un valor actualizado en la dirección 4 utilizando el EEPROM.Función Update ().

Producción

Conclusión

Las bibliotecas en la programación de Arduino se utilizan principalmente para obtener algunas funcionalidades adicionales del hardware que. El EEPROM es el recuerdo del tablero Arduino al que se puede acceder utilizando el EEPROM.H Biblioteca. Al usar sus funciones, los datos almacenados en el Arduino se pueden editar o borrarse. Este artículo explica cinco funciones principales que se pueden usar para editar o borrar los datos de Arduino.