Features:
- Low Voltage and Standard Voltage Operation
- 2-wire I2C Serial Interface
- Internal Organization: 32,768 x 8 (256Kb)
- Supports Bi-directional Data Transfer Protocol
- I2C Compatible: 100kHz and 400kHz
- Write Protect Pin for Hardware Data Protection
- 64-byte Page Write Mode
- Supports Partial Page Writes
- Self-timed Write Cycle (10ms max)
- Durable: 1 Million Write Cycles, 100-Year Data Retention
Specifications:
- Memory Capacity: 256Kb (32KB)
- Max Write Time: 5ms
- Read/Write Endurance: 100,000 cycles
- Data Retention: >200 Years
- Write Current: 3mA @ 5V
- Read Current: 400µA @ 5V
- Standby Power: 100nA @ 5V
- Operating Temp Range: -40°C to +125°C
Pinout:


Connection with Arduino Uno:
AT24C256 EEPROM |
Arduino Uno |
VCC |
5V |
SCL |
A5 (SCL) |
SDA |
A4 (SDA) |
GND |
GND |
Example Arduino Code:
#include <Wire.h>
#define M1 0x50 // EEPROM device address
void setup() {
Serial.begin(9600);
Wire.begin();
unsigned int address = 1;
writeEEPROM(M1, address, 0x18);
readEEPROM(M1, address);
}
void loop() {}
void writeEEPROM(int deviceaddress, unsigned int eeaddress, byte data) {
Wire.beginTransmission(deviceaddress);
Wire.write((int)(eeaddress >> 8)); // MSB
Wire.write((int)(eeaddress & 0xFF)); // LSB
Wire.write(data);
Serial.println(Wire.endTransmission());
delay(20);
}
void readEEPROM(int deviceaddress, unsigned int eeaddress) {
Wire.beginTransmission(deviceaddress);
Wire.write((int)(eeaddress >> 8)); // MSB
Wire.write((int)(eeaddress & 0xFF)); // LSB
Serial.println(Wire.endTransmission());
delay(5);
Wire.requestFrom(deviceaddress, 1);
if (Wire.available() > 0) {
Serial.println(Wire.read(), HEX);
} else {
Serial.println("NO DATA!");
}
}
Features:
- Low Voltage and Standard Voltage Operation
- 2-wire I2C Serial Interface
- Internal Organization: 32,768 x 8 (256Kb)
- Supports Bi-directional Data Transfer Protocol
- I2C Compatible: 100kHz and 400kHz
- Write Protect Pin for Hardware Data Protection
- 64-byte Page Write Mode
- Supports Partial Page Writes
- Self-timed Write Cycle (10ms max)
- Durable: 1 Million Write Cycles, 100-Year Data Retention
Specifications:
- Memory Capacity: 256Kb (32KB)
- Max Write Time: 5ms
- Read/Write Endurance: 100,000 cycles
- Data Retention: >200 Years
- Write Current: 3mA @ 5V
- Read Current: 400µA @ 5V
- Standby Power: 100nA @ 5V
- Operating Temp Range: -40°C to +125°C
Pinout:


Connection with Arduino Uno:
AT24C256 EEPROM |
Arduino Uno |
VCC |
5V |
SCL |
A5 (SCL) |
SDA |
A4 (SDA) |
GND |
GND |
Example Arduino Code:
#include <Wire.h>
#define M1 0x50 // EEPROM device address
void setup() {
Serial.begin(9600);
Wire.begin();
unsigned int address = 1;
writeEEPROM(M1, address, 0x18);
readEEPROM(M1, address);
}
void loop() {}
void writeEEPROM(int deviceaddress, unsigned int eeaddress, byte data) {
Wire.beginTransmission(deviceaddress);
Wire.write((int)(eeaddress >> 8)); // MSB
Wire.write((int)(eeaddress & 0xFF)); // LSB
Wire.write(data);
Serial.println(Wire.endTransmission());
delay(20);
}
void readEEPROM(int deviceaddress, unsigned int eeaddress) {
Wire.beginTransmission(deviceaddress);
Wire.write((int)(eeaddress >> 8)); // MSB
Wire.write((int)(eeaddress & 0xFF)); // LSB
Serial.println(Wire.endTransmission());
delay(5);
Wire.requestFrom(deviceaddress, 1);
if (Wire.available() > 0) {
Serial.println(Wire.read(), HEX);
} else {
Serial.println("NO DATA!");
}
}