Go Down

Topic: Memoria EEPROM (Read 685 times) previous topic - next topic

Yaboq

Que tal, tengo una duda sobre la memoria eeprom del arduino, el caso es que tengo un programa que tiene que mover un motor a pasos cada hora (es decir, dura una hora apagado y unos 15 segundos moviendo el motor), necesita dar 50 pasos cada hora.

El problema es que cada vez que comienza a moverse entra en un bucle para completar los 50 pasos, y cada vez que da un paso lo guardo en la eeprom del arduino (esto lo hago para que en caso de corte de energía pueda recuperar la posición en la cual se quedó), encontré que solamente se pueden hacer algo así como 100,000 grabaciones en la memoria eeprom antes de que quede inutilizable. ¿Me podría ayudar a solucionar este problema?, ya que si sigo así solamente funcionaria como por 3 meses.

Gracias :DD

max_saeta

Saludos
Una opción es usar una memoria externa, como la 24C32, que soporta 10 millones de lectura/escritura. Y puede ser reemplazada regularmente.

Ahora el problema que existe de grabar de la forma que tu deseas, es el retraso de las tareas.
Mover 1 paso ----> Grabar.
Mover 1 paso mas ----> Grabar.
Eso te va a crear un retraso en los movimientos ya que para grabar en la EEPROM se necesita un tiempo considerable al sumarse las 50 veces.

Yaboq

Gracias, tengo uno de estos:
http://www.tuelectronica.es/tutoriales/arduino/reloj-rtc-i2c-con-arduino.html#


¿Sabes si ese me podría servir para guardar datos? aparte de los del reloj.
De ser así ¿Tienes un código de ejemplo para utilizarlo?.
De antemano Muchas Gracias!!!

surbyte

bueno una solución es la de max
Otra solución sería que armes un sistema de backup de batería que en caso que se caiga la alimentación te de tiempo para (luego de detectar que no tiene alimentación) justamente guarde los datos en la eeprom.
Pero en lugar de hacerlo siempre, lo haces solo cuando se da esta situación.
Para ello necesitas una batería y previo un cargador de baterías que puedes hacer con un LM317.
Antes del LM317 o del circuito cargador montas un optoacoplador o un divisor resistivo calculado para que te de un HIGH a la entrada de un pin del arduino. Si se cae la alimentación, el pin ira a LOW y sa sabiendas que estas con batería entonces haces el backup en la eeprom y te preparas para la situaición.

La batería no necesita ser muy grande, pero si entregar al menos 7V a 12 V.

Go Up