§ Внешний вид и конфигурация

Если WP (Write Protect) соединен с GND — операции записи разрешены, иначе запрещена запись, а чтение разрешено в любом случае.
-ekrana-ot-2020-03-09-122429-e1583735087327.png
Расшифровка адреса 24LСXXX (0 = GND, 1 = VCC)
A2 A1 A0   BIN       HEX
 0  0  0 | 1010000 | 0x50
 0  0  1 | 1010001 | 0x51
 0  1  0 | 1010010 | 0x52
 0  1  1 | 1010011 | 0x53
 1  0  0 | 1010100 | 0x54
 1  0  1 | 1010101 | 0x55
 1  1  0 | 1010110 | 0x56
 1  1  1 | 1010111 | 0x57

§ Топ-схема программирования

Для модуля требуется подключения 24LC.h.
#include "24LC.h"

EEPROM24LC eeprom(0x50);

byte data[10]{12,24,48,96,128,12,4,55,68,250};

void setup() {

    Serial.begin(9600);

    int i;

    // Тестовая запись и чтение из памяти
    for (i = 0; i < 10; i++) { eeprom.write(i, data[i]); }
    for (i = 0; i < 10; i++) { Serial.print(i); Serial.print("  "); Serial.println(eeprom.read(i)); }
}

void loop() { }

§ Модуль

Копиригхты (Ол Правый Резервед)
// Alexander Liman (liman324@yandex.ru) rcl-radio.ru
// I2C EEPROM 24LC256 32 kb
// I2C EEPROM 24LC128 16 kb
#ifndef  EEPROM24LC_H
#define  EEPROM24LC_H

#include <Arduino.h>

class EEPROM24LC
{
    public:

       EEPROM24LC(byte);
       void write(uint16_t addr, uint8_t data);
       byte read(uint16_t addr);

    private:

       int ADDR;
};
#endif
Реализация класса
#include <24LC.h>
#include <Wire.h>

EEPROM24LC::EEPROM24LC(uint8_t addr){

    ADDR = addr;
    Wire.begin();
};

void EEPROM24LC::write(uint16_t addr, uint8_t data) {

    Wire.beginTransmission(ADDR);
    Wire.write(addr >> 8);
    Wire.write(addr & 0xFF);
    Wire.write(data);
    Wire.endTransmission();
    delay(5);
}

uint8_t EEPROM24LC::read(uint16_t addr) {

    Wire.beginTransmission(ADDR);
    Wire.write(addr >> 8);
    Wire.write(addr & 0xFF);
    Wire.endTransmission();

    Wire.beginTransmission(ADDR);
    Wire.requestFrom(ADDR, 1);
    uint8_t value = Wire.read();
    delay(1);

    return value;
}