Escritura/lectura en EEPROM mediante I2c

Hola surbyte, disculpa la molestia, estuve leyendo horas en internet y no puedo resolverlo solo, tengo el mismo problema que este hilo (Escritura y lectura en EEPROM mediante I2c), estoy intentando escribir en la EEPROM del DS3231, me baje la libreria AT24CX.h y la AT24CXX.h. En la primera tengo el problema que la dirección de la memoria esta en 0X50 y la mia en 0X57 y no se como cambiarla y en la segunda puedo leer (que es la que pusiste en la primera página) pero no puedo encontrar la instrucción para escribir, ni para hacer un update. No quiero usar la memoria EEPROM del Arduino porque es limitada (100.000 escrituras) la del DS3231 no conozco su límite,pero si fuera igual a la del Arduino me sale mas barato y es mas cómodo, cundo se agoten las posibilidades, cambiar el RTC que el Arduino,

Te agradezco de antemano.
Saludos

Para comenzar, estas en lo correcto. La EEPROM del DS3231 tiene 1 millon de ciclos de escrituras.
Hay librerías RTC que hacen eso directamente, porque disponen de la opción para guardar datos en la EEPROM disponible.
Ahora no se cual. Es para buscar un poco en Google.

No dispongo del módulo asi que no puedo probar lo que dices.
Lo miro y luego amplio la respueta y mientras tal vez alguien pueda ser mas puntual que yo.

Buenas, a ver si me puedo explicar bien, estoy haciendo un proyecto para el autcultivo, ya se que hay muchos dando vuelta, pero ninguno se planteo lo siguiente, las plantas a cultivar tienen una etapa en cual crecen y otro en cual florecen, estas etapas están regidas por las horas de luz que reciben, la primera etapa reciben 18 horas de luz por día y cuando uno desea que florezcan le cambia el ciclo a 12 horas por día, tengo todo el programa terminado el problema es que, si en algún momento se corta la luz o se apaga el Arduino cuando se encienda arrancaría desde cero día de cultivo y esto alteraría el desarrollo de la planta, es por eso que necesito guardar un numero en la EEPROM, para que cuando arranque nuevamente lo haga desde el numero de día que se apagó, mi idea es la siguiente: guardar todos los dias a la misma hora la cantidad de días de cultivo calculado con millis(), entonces si el Arduino se apagara, solamente tendría que ver si la variable días esta en cero y comprarla con la guardada en la EEPROM.
Surbyte te juro que me canse de leer y buscar en Google y no puedo encontrar la solución y los ejemplos que vienen en las librerias no guardan valores, solo escanean la memoria y la leen.

Para el RTC (DS3231) utilizo la libreria RTClib
Para la EEPROM probe la AT24Cxx y la AT24Cx

No logro que funcione, voy a subir el código de la AT24Cx, no me da error pero en el serial me devuelve todos 0 (ceros), yo abrí la librería y tiene la dirección 0x50, pero no se como cambiarla. En la pagina que encontré el ejemplo del skecht dice la solución pero lo pongo y nada, por ahi o estoy haciendo mal.

Este es el enlace a la pagino donde saque el ejemplo (usa un RTC DS1307)

GuardarFEDS.ino (3.28 KB)

Acá tienes un ejemplo de como guardar datos en el EEPROM del DS3231
Solo busqué en google: Arduino DS3231 save EEPROM pero veo que similar a tu tutorial solo que como no lo pusiste con etiquetas (luego lo modifiqué yo) no le presté atención.

Enlaces sin etiquetas no los consulto pq no están bajo normas del foro.

DS3231RTC
El ejemplo se llama DS3231RTCBasicExample.ino
Supera los 9k asi que no pude publicarlo y como tu puse el link, lo descargas de ahi.

Tienes que puentear todos los puentes del modulo (A0,A1 y A2). Por defecto, este módulo tiene puesto a +5v los bits de direccion, lo que genera la direccion 0X57. Si los pones a 0, tendrá la dirección 0X50 para la EEPROM, que es lo que tiene configurado la librería.

Yo he sustituido un modulo TinyRTC que tenía una precisión pésima por este con el DS3231 y no hay color... Ya no atrasa...

Un saludo.