A veces es importante guardar datos leídos por sensores o resultados de formulas en una memoria eeprom, la memoria eeprom maneja el protocolo de comunicación I2C a continuación adjunto el código simple para manejar una memoria eeprom ya sea para escritura y lectura, cabe destacar que este código esta probado por mi y funciona a la perfección... dentro del archivo tambien esta la hoja de datos de la memoria, y en el codigo esta descrito el diagrama de conexion, espero sus comentarios.
http://www.megaupload.com/?d=NWWLC5MH
hola javier soy joel estudiante de venezuela, estoy tratando de almacenar el total de los
ResponderEliminardatos en la memoria eeprom 24AA256 pero no logro grabar datos a mas de 255 posiciones,
1. La memoria 24AA256 dispone de 8 paginas de memoria con 32k cada una, las cuales tienen
32768 posciones de memoria con 8 bits cada uno, bien yo quiero escribir desde la posicion
cero hasta la 32767 de la pagina 1(A2,A1 y A0 los tengo en cero Volts), esto se puede realizar
con este programa? que debo hacer estuve probando cambiando el valor de la linea [6]
y puedo acceder a varias posiciones pero solo hasta la 255
2. Por otra parte me podrias expilcar que es lo que hace la linea [8]?
Espero haberme explicado y que me puedas orientar con esto
[1] void loop (){
[2] int temp = 0;
[3] Serial.println("Leyendo");
[4] Wire.beginTransmission(deviceADD); //DIRECCION DEL DISPOSITIVO
[5] Wire.send(0x00); //DIRECCION DE LA PAGINA
[6] Wire.send(0x01); //LEO 1 BYTE DE LA MEMORIA
[7] Wire.endTransmission();
[8] Wire.requestFrom(deviceADD,1);
[9] if (Wire.available())
[10] temp = Wire.receive();
[11] Wire.endTransmission();
Serial.println(temp);
delay(200);
}
Hola, recien estoy empezando a utilizar esta memoria, y no hice ningun sketch funcional pero creo que estas equivocado, segun lei la 24lc256 tiene 256Kbits, o sea 8 pags de 32Kbits lo que serian 4Kbytes por pagina.
ResponderEliminarSaludos.