Problemi di comunicazione con 24LC256 EEPROM

Ciao ragazzi, mi rivolgo a voi perchè non riesco a far funzionare una EEPROM 24LC256... in pratica ho eseguito esattamente le procedure indicate su questo indirizzo http://www.hobbytronics.co.uk/arduino-external-eeprom . In pratica quando apro la connessione con la libreria wire.h e cerco di leggere sulla EEPROM Wire.available() mi torna sempre false! Ho realizzato il circuito su una breadbord, e ho testato i contatti con un tester...e sembra che no ci siano problemi, e per questo non capisco! Mi potete aiutare?

cosa intendi per "False"?
Ciao Uwe

Uso questa funzione:

byte readEEPROM(int deviceaddress, unsigned int eeaddress ) 
{
  byte rdata = 0xFF;
 
  Wire.beginTransmission(deviceaddress);
  Wire.send((int)(eeaddress >> 8));   // MSB
  Wire.send((int)(eeaddress & 0xFF)); // LSB
  Wire.endTransmission();
 
  Wire.requestFrom(deviceaddress,1);
 
  if (Wire.available()) rdata = Wire.receive();
 
  return rdata;
}

Arrivato a questa riga...

if (Wire.available()) rdata = Wire.receive();

...Wire.available() non è mai true, quindi dovrebbe significare che l'ic non mi ha inviato niente??

Edit:
Dimenticavo di dire che chiamo questa funzione con readEEPROM(0x50, 0x0);
dove 0x50 è l'indirizzo del'ic e 0x0 l'indirizzo su cui leggere!

Hai provato di controllare l' indirizzo del EEprom con Arduino Playground - I2cScanner ?
Fai una foto del Tuo circuito.
Ciao Uwe

Uhm... non c'è bisogno perchè i contatti sono tutti testati col multimetro e dovrebbero essere al loro posto. L'ic è collegato così:

Pin1 (Address1)> GND
Pin2 (Address2)> GND
Pin3 (Address3)> GND
Pin4 (Vss)> GND
Pin5 (SDA)> Arduino Pin 20
Pin6 (SCL)> Arduino Pin 21
Pin7 (WP)> GND
Pin8 (Vcc)> Arduino 5v

E' il circuito sembrerebbe funzionare perchè...questo è l'output seriale di quello sketch che mi hai linkato:

Scanning...
I2C device found at address 0x50  !
done
[/done]

Quindi...ora dove sta il problema?

prova a mettere

while(!Wire.available());

in questo modo però se non arriva la risposta il codice rimane bloccato lì.
Potresti mettere un timeout.

L' eeprom ha bisogno di tempo per scivere un dato. Forse i 5ms del sketch esempio sono troppo poco. Il datasheet dice "Page Write Time 5 ms max" ma prova comunque di aspettare 10ms dopo la scrittura.
Ciao Uwe

Niente ragazzi... Wire.available continua a dare sempre problemi. PaoloP ho provato a mettere quel while e a quanto pare na volta entrato nel ciclo non se ne esce più. Stessa cosa, Uwe, se provo ad allungare il delay dopo il write...restra sempre bloccato nel while...