Ayuda con EEPROM i2c

Hola a todos

Estoy intentando usar una memoria eeprom por i2c con arduino pero no he podido hacerla funcionar bien, basicamente lo que pasa es que no puedo leer ni grabar en una ubicación específica.

La memoria que estoy usando es una 24LC16B, todo esta bien conectado A0,A1,A2 y WP a GND, SDA y SDL con pull-up de 1K.

Utilicé las funciones presentes en [1] y muchas otras que encontre en internet pero ninguna funciono.

Pongo a continuación el código basico que estoy utilizando haber si alguno me hecha un mano.

Gracias.

Leonardo

[1] Arduino Playground - I2CEEPROM

#include <Wire.h>
int deviceADD = 0x50;

void setup (){
 Wire.begin();
 delay(5000);
 Serial.begin(9600);
 
 Serial.println("Escribiendo");
 Wire.beginTransmission(deviceADD); //Control Byte
 
 Wire.send(0x00); //Direccion high   |Word Address
 Wire.send(0x01); //Direccion Low    |
 
 Wire.send(0x35);  //Dato  5         |Data
 Wire.endTransmission();
 delay(3);
}

void loop (){
  unsigned char temp = 0;
  Serial.println("Leyendo");
  Wire.beginTransmission(deviceADD); //Control Byte
  
  Wire.send(0x00); //Direccion high   |Word Address
  Wire.send(0x01); //Direccion Low    |
  Wire.endTransmission();
  Wire.requestFrom(deviceADD,1);

  if (Wire.available())
  temp = Wire.receive();
  Wire.endTransmission();
 
  Serial.println(temp);
  delay(2000);
  
}

Hola a todos.

Pude solucionar el problema cambiando la memoria a una 24LC256 y funciono sin ningun problema, al parecer hay algo que cambia en la 24LC16b que la hace incompatible, aunque revise ambos datasheets y no vi diferencia en el protocolo. En fin.

Saludos

Pues gracias por publicar la solución.

Pakoff.

Buenas.

Estoy empezando y tu duda me ha servido como ejemplo.

Muchas gracias. :slight_smile:

a mi me sirvio...

de todas maneras aki hay mejor info:
este blog te servira:

en esta parte esta la info solicitada:

http://arduinox.blogspot.com/2010/06/memoria-eeprom-24lc256-y-arduino.htm

espero te sirva... :wink: