#include <Wire.h>
#define EEPROM_ADDR 0x50 // EEPROM এর সাধারণ I2C অ্যাড্রেস, সঠিক অ্যাড্রেস নিশ্চিত করুন
void setup() {
Wire.begin();
Serial.begin(9600);
// EEPROM অ্যাড্রেস বিট সংখ্যা পরীক্ষা শুরু
// detectEEPROMAddressing();
}
void loop() {
// কোন কাজ নেই
detectEEPROMAddressing();
delay(1000);
}
void detectEEPROMAddressing() {
for (uint8_t addrBits = 8; addrBits <= 13; addrBits++) {
if (testEEPROMAddress(addrBits)) {
Serial.print("Detected EEPROM with ");
Serial.print(addrBits);
Serial.println(" address bits.");
return; // একটি সঠিক ডিটেকশন হলেই স্টপ করে দেবে
}
}
Serial.println("EEPROM address bits not detected.");
}
bool testEEPROMAddress(uint8_t addrBits) {
uint16_t maxAddr = (1 << addrBits) - 1;
uint16_t testAddr = 0;
Wire.beginTransmission(EEPROM_ADDR);
Wire.write((testAddr >> 8) & 0xFF); // উচ্চ অক্ষর
Wire.write(testAddr & 0xFF); // নিম্ন অক্ষর
Wire.endTransmission();
Wire.requestFrom(EEPROM_ADDR, (uint8_t)1);
if (Wire.available()) {
return true;
} else {
return false;
}
}