Conectar arduino a EEPROM 24LCXX


Doy una guía estructurada con el paso a paso explicando cómo conectar el arduino con la EEPROM 24LC256 usando la librería sparkfun

Conectar arduino a EEPROM 24LCXX
oscar Escrito por oscar 30 June 2025 472 0

En este post doy una guía estructurada con el paso a paso explicando cómo conectar el Arduino con la EEPROM 24LC256 usando la librería SparkFun External EEPROM

Esta configuración te permitirá almacenar y recuperar datos de forma no volátil, ideal para configuraciones, cualquier información que deba mantenerse al apagar el dispositivo.

Prerrequisitos

Arduino

Aprende mas sobre estas placas en la Definición de Arduino que se ha creado:

Arduino
Arduino

EEPROM 24LCXX

A continuación, mencionamos las principales características de las memorias EEPROM, para este post vamos a usar una memoria 24LC256, aunque si va a trabajar con otra memoria de la familia 24LCXX, la conexion es la misma.

24lcxx
24lcxx

📦 Materiales necesarios

Componente Cantidad
Arduino (uno, nano, leonardo, mega, entre otros) 1
EEPROM 24LC256  1
Resistencias 10kΩ (Pull-up) 2
Cables dupont Varios
Protoboard

🔌 Conexión entre Arduino y EEPROM 24LC256

La 24LC256 se comunica mediante I²C, por lo tanto usaremos los pines SDA y SCL del Arduino.

EEPROM 24LC256 Arduino Descripción
VCC 5V Alimentación 5V
GND G Tierra
SDA SDA Datos I²C
SCL SCL Reloj I²C
WP GND Desactivar protección contra escritura
A0, A1, A2 GND (todos) Dirección I²C = 0x50

⚠️ No olvides conectar resistencias pull-up de 10kΩ entre SDA y VCC, y entre SCL y VCC.

Arduino 24LCxx
Arduino 24LCxx

🧰 Instalación de la librería SparkFun_External_EEPROM

💻 Código de ejemplo: Escribir y leer en la EEPROM

#include <Wire.h>

#include "SparkFun_External_EEPROM.h"
ExternalEEPROM myMem;

void setup()
{
  Serial.begin(115200);
  Serial.println("EEPROM example");

  Wire.begin();

  myMem.setMemoryType(512);

  if (myMem.begin() == false)
  {
    Serial.println("No memory detected. Freezing.");
    while (true)
      ;
  }
  Serial.println("Memory detected!");

  Serial.print("Mem size in bytes: ");
  Serial.println(myMem.length());

  byte myValue1 = 200;
  myMem.write(0, myValue1);

  byte myRead1 = myMem.read(0);
  Serial.print("I read (should be 200): ");
  Serial.println(myRead1);

  int myValue2 = -366;
  myMem.put(10, myValue2);
  int myRead2;
  myMem.get(10, myRead2);
  Serial.print("I read (should be -366): ");
  Serial.println(myRead2);

  float myValue3 = -7.35;
  myMem.put(20, myValue3);
  float myRead3;
  myMem.get(20, myRead3);
  Serial.print("I read (should be -7.35): ");
  Serial.println(myRead3);

  String myString = "Hi, I am just a simple test string";
  unsigned long nextEEPROMLocation = myMem.putString(30, myString);
  String myRead4 = "";
  myMem.getString(30, myRead4);
  Serial.print("I read: ");
  Serial.println(myRead4);
  Serial.print("Next available EEPROM location: ");
  Serial.println(nextEEPROMLocation);
}

void loop()
{
}

🔍 Explicación del código

✍️ Escritura y Lectura de Datos

✅ Escribir/Leer un byte:

✅ Escribir/Leer un int:

int myValue2 = -366;
myMem.put(10, myValue2);
int myRead2;
myMem.get(10, myRead2);
Serial.print("I read (should be -366): ");
Serial.println(myRead2);

Usa internamente memcpy() para dividirlo en bytes y almacenarlo.

✅ Escribir/Leer un float:

float myValue3 = -7.35;
myMem.put(20, myValue3);
float myRead3;
myMem.get(20, myRead3);
Serial.print("I read (should be -7.35): ");
Serial.println(myRead3);

✅ Escribir/Leer una String:

🧪 Verificando funcionamiento

  1. Conecta tu ESP32 y sube el código.
  2. Abre el monitor serial a 115200 baudios.
  3. Deberías ver el mensaje: 
Memory detected!
Mem size in bytes: 65536
I read (should be 200): 200
I read (should be -366): -366
I read (should be -7.35): -7.35
I read: Hi, I am just a simple test string
Next available EEPROM location: 65

Comentario

Debe aceptar antes de enviar