Como usar la memoria EEPROM de Arduino

Hola Ardumaníac@s, bienvenidos a un nuevo tutorial donde aprenderemos a usar la memoria EEPROM de Arduino de un modo fácil y práctico. En primer lugar veamos los 3 tipos de memoria que usa nuestro Arduino:

FLASH (Memoria de programa): Es una memoria no volátil que usa la misma tecnología que las tarjetas SD y las memorias USB. Usualmente tiene un tamaño entre 32Kb (Arduino UNO) y 512Kb (Arduino DUE). En esta memoria del Arduino se guarda el sketch ya compilado y tiene una vida útil de unos 100.000 ciclos de escritura aproximadamente.

SRAM (Static Random Access Memory): Es una memoria volátil donde el sketch crea, almacena y manipula variables en tiempo de ejecución, pero cuando interrumpimos la alimentación del Arduino o lo reseteamos los datos que hay almacenados simplemente desaparecen.

EEPROM (Electrically Erasable Programmable Read-Only Memory): Es una memoria no volátil algo más lenta que la SRAM que generalmente se usa para almacenar datos de configuración o calibración para que puedan sobrevivir a un reset, a una reprogramación (actualización) del sketch y a un corte en la alimentación. A esta memoria se puede acceder (leer/escribir) haciendo llamadas desde el propio sketch.

Puedes programar fácilmente la memoria EEPROM de Arduino utilizando la librería EEPROM.h del IDE de Arduino. Tiene un método para escribir llamado write(), y otro para leer llamado read(). Tanto para leer como para escribir se trabaja por direcciones byte a byte. A continuación te enseñamos como hacerlo.

Como escribir un byte en la EEPROM

Escribir un byte en la EEPROM del Arduino nos puede servir, por ejemplo, para almacenar el estado de un sensor, la posición de un relé o incluso para almacenar un valor de calibración. Para escribir un byte en la EEPROM solo hay que apuntar a una dirección y asignarle un valor:

Aquí tenéis herramientas online para convertir de binario a decimal y de decimal a binario.

Como escribir texto en la EEPROM

Puede que también necesitemos guardar una cadena de texto en la EEPROM, para ello hay 2 funciones muy útiles: Leer_EEPROM() y Escribir_EEPROM() que tenéis a continuación:

Función para borrar toda la EEPROM

Para finalizar aquí tenéis una simple función para borrar toda la EEPROM, por si necesitáis empezar de cero:

La vida útil de la memoria EEPROM es de unos 100.000 ciclos de escritura/lectura, luego empezará a fallar, así que no conviene abusar. Siempre tenéis que optimizar vuestro código al máximo.

¡MUY FÁCIL!

[Total:1    Promedio:5/5]
Compartir en redes sociales: