Programa exemplo para EEPROM 24C32 – escrever e ler um byte

Programa exemplo  que escreve e lê um byte na EEPROM 24C32.

#include <Wire.h> 

#define disk1 0x51 //Address of 24C32 eeprom chip

void setup(void)
{
Serial.begin(115200);
Wire.begin(); 

unsigned int address = 2;

writeEEPROM(disk1, address, 64);
Serial.print(readEEPROM(disk1, address), DEC);
}

void loop(){}

void writeEEPROM(int device, unsigned int address, byte data ) 
{
Wire.beginTransmission(device);
Wire.write((int)(address >> 8)); // MSB
Wire.write((int)(address & 0xFF)); // LSB
Wire.write(data);
Wire.endTransmission();

delay(5);
}

byte readEEPROM(int device, unsigned int address ) 
{
byte rdata = 0xFF;

Wire.beginTransmission(device);
Wire.write((int)(address >> 8)); // MSB
Wire.write((int)(address & 0xFF)); // LSB
Wire.endTransmission(); 
Wire.requestFrom(device,1);

if (Wire.available()) {
rdata = Wire.read();
}

return rdata;
}