Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-23 14:39
En este artículo vamos a examinar la EEPROM interna en nuestras placas Arduino. ¿Qué es una EEPROM que algunos de ustedes pueden estar diciendo? Una EEPROM es una memoria de sólo lectura programable y borrable eléctricamente.
Es una forma de memoria no volátil que puede recordar cosas con la energía apagada o después de reiniciar el Arduino. La belleza de este tipo de memoria es que podemos almacenar datos generados dentro de un boceto de forma más permanente.
¿Por qué usaría la EEPROM interna? Para situaciones en las que los datos que son exclusivos de una situación necesitan un hogar más permanente. Por ejemplo, almacenar el número de serie único y la fecha de fabricación de un proyecto comercial basado en Arduino: una función del boceto podría mostrar el número de serie en una pantalla LCD, o los datos podrían leerse cargando un "boceto de servicio". O puede que necesite contar ciertos eventos y no permitir que el usuario los reinicie, como un odómetro o un contador de ciclos de operación.
Paso 1: ¿Qué tipo de datos se pueden almacenar?
Todo lo que pueda representarse como bytes de datos. Un byte de datos se compone de ocho bits de datos. Un bit puede estar activado (valor 1) o desactivado (valor 0) y son perfectos para representar números en forma binaria. En otras palabras, un número binario solo puede usar ceros y unos para representar un valor. Por lo tanto, el binario también se conoce como "base-2", ya que solo puede usar dos dígitos.
¿Cómo puede un número binario con solo el uso de dos dígitos representar un número mayor? Utiliza muchos unos y ceros. Examinemos un número binario, digamos 10101010. Como es un número de base 2, cada dígito representa 2 elevado a x, desde x = 0 en adelante.
Paso 2:
Vea cómo cada dígito del número binario puede representar un número de base 10. Entonces, el número binario anterior representa 85 en base 10; el valor 85 es la suma de los valores en base 10. Otro ejemplo: 11111111 en binario es igual a 255 en base 10.
Paso 3:
Ahora, cada dígito de ese número binario usa un "bit" de memoria y ocho bits forman un byte. Debido a las limitaciones internas de los microcontroladores en nuestras placas Arduino, solo podemos almacenar números de 8 bits (un byte) en la EEPROM.
Esto limita el valor decimal del número entre cero y 255. Depende de usted decidir cómo se pueden representar sus datos con ese rango de números. No dejes que eso te desanime: ¡los números ordenados de la manera correcta pueden representar casi cualquier cosa! Hay una limitación a tener en cuenta: la cantidad de veces que podemos leer o escribir en la EEPROM. Según el fabricante Atmel, la EEPROM es buena para 100, 000 ciclos de lectura / escritura (consulte la hoja de datos).
Paso 4:
Ahora que conocemos nuestros bits y bytes, ¿cuántos bytes se pueden almacenar en el microcontrolador de nuestro Arduino? La respuesta varía según el modelo de microcontrolador. Por ejemplo:
- Placas con un Atmel ATmega328, como Arduino Uno, Uno SMD, Nano, Lilypad, etc. - 1024 bytes (1 kilobyte)
- Placas con Atmel ATmega1280 o 2560, como la serie Arduino Mega - 4096 bytes (4 kilobytes)
- Placas con un Atmel ATmega168, como el Arduino Lilypad original, el antiguo Nano, Diecimila, etc. - 512 bytes.
Si no está seguro, consulte el índice de hardware de Arduino o pregunte a su proveedor de placas. Si necesita más almacenamiento EEPROM del que está disponible con su microcontrolador, considere usar una EEPROM I2C externa.
En este punto, ahora entendemos qué tipo de datos y cuánto se pueden almacenar en la EEPROM de nuestro Arduino. Ahora es el momento de poner esto en práctica. Como se discutió anteriormente, existe una cantidad finita de espacio para nuestros datos. En los siguientes ejemplos, usaremos una placa Arduino típica con el ATmega328 con 1024 bytes de almacenamiento EEPROM.
Paso 5:
Para usar la EEPROM, se requiere una biblioteca, así que use la siguiente biblioteca en sus bocetos:
#include "EEPROM.h"
El resto es muy sencillo. Para almacenar un dato, usamos la siguiente función:
EEPROM.write (a, b);
El parámetro a es la posición en la EEPROM para almacenar el número entero (0 ~ 255) de los datos b. En este ejemplo, tenemos 1024 bytes de almacenamiento de memoria, por lo que el valor de a está entre 0 y 1023. Para recuperar un dato es igualmente simple, use:
z = EEPROM.read (a);
Donde z es un número entero para almacenar los datos de la posición EEPROM a. Ahora para ver un ejemplo.
Paso 6:
Este boceto creará números aleatorios entre 0 y 255, los almacenará en la EEPROM, luego los recuperará y mostrará en el monitor en serie. La variable EEsize es el límite superior del tamaño de su EEPROM, por lo que (por ejemplo) sería 1024 para un Arduino Uno o 4096 para un Mega.
// Demostración interna de EEPROM de Arduino
#incluir
int zz; int EEsize = 1024; // tamaño en bytes de la EEPROM de su placa
configuración vacía ()
{Serial.begin (9600); randomSeed (analogRead (0)); } void loop () {Serial.println ("Escribiendo números aleatorios …"); para (int i = 0; i <EEsize; i ++) {zz = random (255); EEPROM.write (i, zz); } Serial.println (); para (int a = 0; a <tamaño EE; a ++) {zz = EEPROM.read (a); Serial.print ("Posición EEPROM:"); Serial.print (a); Serial.print ("contiene"); Serial.println (zz); retraso (25); }}
Aparecerá la salida del monitor en serie, como se muestra en la imagen.
Ahí lo tienes, otra forma útil de almacenar datos con nuestros sistemas Arduino. Aunque no es el tutorial más emocionante, sin duda es útil.
Esta publicación presentada por pmdway.com: todo para fabricantes y entusiastas de la electrónica, con envío gratuito en todo el mundo.
Recomendado:
GPS Para Norma (Datalogger EEPROM): 5 pasos
GPS Para Norma (Registrador de datos EEPROM): Registrador de datos de mascotas GPS simple basado en arduino y grabación EEPROM ================================ ======================= Sencillo datalogger GPS para mascotas basado en arduino y grabacion en memoria EEPROM
Lectura y escritura de datos en EEPROM externa usando Arduino: 5 pasos
Lectura y escritura de datos en EEPROM externa usando Arduino: EEPROM significa Memoria de solo lectura programable y borrable eléctricamente. EEPROM es muy importante y útil porque es una forma de memoria no volátil. Esto significa que incluso cuando la placa está apagada, el chip EEPROM aún conserva el programa que
BYTEBANGER EEPROM Arduino I²C ™: 5 pasos
Arduino I²C ™ EEPROM BYTEBANGER: Recientemente me intrigó I²C EEProms después de rescatar algunos de un viejo televisor de retroproyección que estaba desechando. Busqué en Internet tratando de encontrar más información sobre ellos, como hojas de datos, & Tutoriales sobre cómo funcionaban estas cosas a
Inicialización de la configuración de Arduino EEPROM: 5 pasos
Inicialización de la configuración de Arduino EEPROM: Hola a todos, Cada Arduino tiene una pequeña memoria incorporada llamada EEPROM. Puede usar esto para almacenar configuraciones para su proyecto donde los valores elegidos se mantendrán entre ciclos de energía y estarán allí la próxima vez que encienda el Arduino. Tengo un
Agregar una EEPROM 24LC256 al Arduino Due: 3 pasos
Agregar una EEPROM 24LC256 al Arduino Due: El arduino due carece de una eeprom. Este instructable agrega uno y le permite almacenar valores en la memoria no volátil que sobrevivirán a una actualización de firmware arduino