سلام
من در راه اندازی EEPROM 24C64 مشکل دارم
کد من بصورت زیر هست

#include <Wire.h>
void eeprom_i2c_write(byte address, byte from_addr, byte data) {
Wire.beginTransmission(address);
Wire.write((int)(from_addr >> 8)); // MSB
Wire.write((int)(from_addr & 0xFF)); // LSB
Wire.write(data);
Wire.endTransmission();
delay(50);
}
int eeprom_i2c_read(int address, int from_addr) {
Wire.beginTransmission(address);
Wire.write(from_addr);
Wire.endTransmission();
Wire.endTransmission();
Wire.requestFrom(address, 1);
delay(50);
if(Wire.available())
return Wire.read();
else
return -1;
}

void setup() {
Wire.begin();
Serial.begin(9600);
delay(2000);
for(int i = 10; i < 20; i++) {
eeprom_i2c_write(B01010000, i, i);
Serial.println(i);
delay(50);
}
Serial.println("Writen to memory!");
}

void loop() {
for(int i = 10; i < 20; i++) {
int r = eeprom_i2c_read(B01010000, i);
Serial.print(i);
Serial.print(" - ");
Serial.print(r);
Serial.print("\n");
}
delay(20000);
}

سیم بندی ای سی هم به اینصورته که پایه های 1و2و3و4و6 به زمین وصل شده و بقیه هم درست وصل شده
با ذخیره مقادیر 10تا20 در خانه های 10تا20 هیچ اتفاقی نمی افتد و موقع خواندن همان خانه ها مقدار 255 است
آدرس آی سی هم 0x50 تنظیم شده البته بصورت باینری (B01010000)
کجای کارم ایراد داره؟