¿Hay alguna forma de almacenar los valores de las variables necesarias en una SD (puede estar en un archivo que el programa actualiza en varios eventos), que puede leerse cuando el programa se inicia después de reiniciar/ o que por ejemplo, se apague de forma inesperada, la placa Arduino?
Tendría que guardar el volumen de agua que, mediante un sensor recolecto. Y necesito que este se luego del apagado (cuando se vuelve a conectar arduino) para que siga con el mismo limite que son 2L. De no hacer esto el usuario podría aprovecharse y tener volumen infinito.
No es viable hacerlo en la EEPROM ya que este sensor se actualiza cada 1 segundo, entonces la vida útil de este EEPROM se terminaria en menos de una semana.
Es fácil el tema de escribir en la SD pero me estaría costando el hecho de guardar texto como variable (del tipo float) y volver a este cada vez que se ocurre un reinicio.
Siento decirte que la SD también tiene limite de escrituras
Yo guardaría en la eeprom solo el bloqueo, para que si se reinicia siga bloqueado, se estima el limite de escrituras en 100000 por lo que tendrías para 273 años
Cual es el motivo del reinicio? por corte de luz?
Puedes probar a poner una fuente con batería si es el caso
Hay estrategias para evitar el uso significativo de la memoria Eeprom. La mas simple es solo escribirla cuando se produce un cambio significativo entre las mediciones, es decir en vez de guardar la medida cada segundo, lo harías solo cuando cambia cierto porcentaje establecido.
La otra estrategia es ir escribiendo en distinta direcciones consecutivas de la Eprom, por ejemplo escribo en la posición 1 el dato y en el valor consecutivo (2) escribo un cero. La siguiente vez que tengo que escribir en la Eeprom escribo el dato en 2 y un cero en el 3 y así sucesivamente hasta acabar la memoria y volver a empezar. Al reiniciar solo hay que buscar la primera posición donde hay un cero, de esta manera no estas escribiendo siempre en la misma posición de memoria.