// Schreibe 10 Werte ins EEPROM //---------------------------------- #include #define I2CBaustein 0x50 // Festlegen der I2C Zugriffsadresse int i; void setup(){ Wire.begin(); Serial.begin(9600); unsigned int speicherAdresse = 0; // Startadresse byte wert = 10; // Zu speichernder Wert for (int i = 0; i < 10; i++) { Serial.print(" Schreibe Wert: "); Serial.print(wert); Serial.print(" an Adresse : ");Serial.println(speicherAdresse,HEX); schreibeEEPROM(I2CBaustein, speicherAdresse, wert); // Schreiben wert++; speicherAdresse++; delay(1000); } } void loop(){/* leer */} void schreibeEEPROM(int I2CBausteinAdresse, unsigned int speicherAdresse, byte daten){ Wire.beginTransmission(I2CBausteinAdresse); // Verbindung zu I2C initiieren Wire.write((byte)(speicherAdresse >> 8)); // MSB (höherwertiges Byte) senden Wire.write((byte)(speicherAdresse & 0xFF)); // LSB (niederweriges Byte) senden Wire.write(daten); // Daten-Byte zum Speichern senden Wire.endTransmission(); // Verbindung zu I2C trennen delay(5); // Kurze Pause. Äußerst wichtig!!! } //------------------------ // EEPROM Werte Lesen //------------------------ #include #define I2CBaustein 0x50 // Festlegen der I2C Zugriffsadresse void setup(){ Wire.begin(); Serial.begin(9600); unsigned int speicherAdresse = 0; // Startadresse Serial.println(leseEEPROM(I2CBaustein, speicherAdresse), HEX); // Lesen Serial.println(leseEEPROM(I2CBaustein, speicherAdresse+4), HEX); // Lesen Serial.println(leseEEPROM(I2CBaustein, speicherAdresse+8), HEX); // Lesen } void loop(){/* leer */} byte leseEEPROM(int I2CBausteinAdresse, unsigned int speicherAdresse){ byte datenByte = 0xFF; Wire.beginTransmission(I2CBausteinAdresse); // Verbindung zu I2C initiieren Wire.write((byte)(speicherAdresse >> 8)); // MSB (höherwertiges Byte) senden Wire.write((byte)(speicherAdresse & 0xFF)); // LSB (niederwertiges Byte) senden Wire.endTransmission(); // Verbindung zu I2C trennen Wire.requestFrom(I2CBausteinAdresse, 1); // Anfordern der Daten vom Slave if(Wire.available()) datenByte = Wire.read(); // Sind Daten vorhanden? return datenByte; // Daten-Byte zurückliefern }