سلام
من در راه اندازی EEPROM 24C64 مشکل دارم
کد من بصورت زیر هست
سیم بندی ای سی هم به اینصورته که پایه های 1و2و3و4و6 به زمین وصل شده و بقیه هم درست وصل شده
با ذخیره مقادیر 10تا20 در خانه های 10تا20 هیچ اتفاقی نمی افتد و موقع خواندن همان خانه ها مقدار 255 است
آدرس آی سی هم 0x50 تنظیم شده البته بصورت باینری (B01010000)
کجای کارم ایراد داره؟
من در راه اندازی 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)
کجای کارم ایراد داره؟