,Éste tutorial fue realizado para ver el funcionamiento de Arduino EEPROM y sus funciones.
Para empezar, el micro-controlador en el Arduino tiene EEPROM (Electrically Erasable Programmable Read-Only Memory (ROM Programable y Borrable Eléctricamente)). Una memoria en la cual los datos son guardados aun cuando la tarjeta es apagada.
DETALLES.
En general, los distintos micro-controladores en las distintas tarjetas de Arduino contienen diferentes cantidades de EEPROM:
– 4kb (4096 bytes) en ATmega1280 y ATmega2560.
– 1kb (1024 bytes) en ATmega328P.
– 512 bytes en Atmega168 y ATmega8.
– 1kb (1024 bytes) emulados en Arduino 101.
FUNCIONES.
En primer lugar, las funciones de EEPROM te permiten leer y escribir en esos bytes y se pueden usar gracias a la librería EEPROM.h, éstas funciones son:
– EEPROM Read: La cual lee EEPROM y envía sus valores a la ventana serial del software de Arduino.
– EEPROM Write: La cual guarda valores de una entrada analógica a EEPROM.
– Limpiar EEPROM: No existe una función específica. Por lo tanto, se cambian los bytes en EEPROM a 0 usando EEPROM_write.
– EEPROM Put: La cual pone valores en EEPROM usando variables.
– EEPROM Get: La cual obtiene valores de EEPROM y los imprime como flotantes en la ventana serial del software de Arduino.
– Iteración de EEPROM: No existe una función específica. Por lo tanto, se recorre todas las locaciones de EEPROM usando EEPROM_write.
– EEPROM Update: La cual guarda valores leídos de A0 en EEPROM, escribiendo el valor sólo si este es diferente del anterior.
– EEPROM CRC: No existe una función específica. Por lo tanto, se calcula el CRC (Cyclic Redundancy Check (Verificación de redundancia Cíclica)) de los contenidos en EEPROM para encontrar un error usando un algoritmo.
FUNCIÓN Arduino EEPROM READ.
Para empezar, mostramos el código de EEPROM READ. Primeramente, permite leer el valor de cada byte de EEPROM usando la función EEPROM.read(), estos valores pueden ser visualizados en la ventana serial del software de Arduino.
Código.
FUNCIÓN Arduino EEPROM WRITE.
Además, mostramos el código de la función EEPROM WRITE. En primer lugar, permite guardar valores de una entrada analógica en EEPROM usando la función EEPROM.write(), estos valores se conservarán en EEPROM, aunque la tarjeta sea apagada.
Código.
Estos valores fueron obtenidos usando la siguiente conexión:
Y alternando con:
Así como con GND.
FUNCIÓN Arduino EEPROM CLEAR.
En sí, EEPROM no tiene una función clear. Por lo tanto, se cambian todos los bytes a cero usando una iteración y la función EEPROM.write().
Código.
See the gist on github.
FUNCIÓN Arduino EEPROM PUT.
A continuación mostramos el código de la función EEPROM PUT. La cual se usa normalmente en conjunto con EEPROM.get, el número de bytes escritos se relaciona al tipo de dato de la variable en la que se van a guardar.
Código.
FUNCIÓN Arduino EEPROM GET.
Además, mostramos el código de la función EEPROM GET. Primeramente, obtiene diferentes variables de EEPROM y recupera un número de bytes que se relaciona al tipo de dato de la variable.
Código.
Función Arduino EEPROM UPDATE.
Además, m0stramos el código de la función EEPROM UPDATE. Para empezar, escribe valores sólo si estos son diferentes a los contenidos de las localizaciones en las que se está por escribir. En consecuencia, se evita escribir el mismo dato en una misma localización. Por lo tanto, se incrementa la vida útil de la EEPROM.
Código.
ITERACIÓN DE Arduino EEPROM.
También, no existe una función para iterar. Por lo tanto, se usan diferentes métodos para recorrer toda la EEPROM. Lo que puede usarse para cambiar el valor de todos los bytes de la EEPROM y es lo que se usa para limpiarla.
Código.
Arduino EEPROM CRC.
Por último, no existe una función CRC (Cyclic Redundancy Check (Verificación de redundancia Cíclica)). Por lo tanto, se usa un algoritmo que es una forma simple de revisar si algún dato ha cambiado o si se ha corrompido.
Código.
Para empezar, antes de ejecutar el programa:
Finalmente, después de ejecutar el programa:
*Nota: Para empezar, para la representación serial de las secciones: Arduino EEPROM WRITE, Arduino EEPROM CLEAR y Arduino EEPROM UPDATE se usó el código de la sección Arduino EEPROM READ.
*Nota: Finalmente, para obtener los valores que se obervan en las secciones, se usó la misma conexión que se muestra en EEPROM_write.
Links.
Finalmente, se muestran links para las tarjetas Arduino que ofrecemos en Hetpro: