que dispositivo de almacenamiento me recomendais

buenas tardes a todos,

espero que este sea el lugar adecuado para la pregunta sino que me lo indique el moderador y la varío de sitio.

tengo un arduino mega 1280.

os cuento mas o menos lo que quiero hacer.

tengo 4 persianas motorizadas y los motores tienen sus correspondientes finales de carrera internos.

quiero que éstas mediante activación de un pin de salida del arduino, me controlan un relé tanto para subida y otro rele para bajada.

los relés, son controlados por tiempo en "ms" y haciendo yo un cronometraje los activo para llevar la persiana a una posicion en concreto.

por ejemplo:

posicion cerrada=0
posicion a 30cm =1
posicion a media altura =2
abierta del todo =3

mi pregunta es:

en que sistema tendria que almacenar los valores de 0,1,2 ó 3 para que si se apaga el arduino lea la variable y sepa en que posicion se encuentran??

muchas gracias por vuestra ayuda.

un abrazo

Guardalos en la EEPROM: https://www.arduino.cc/en/Reference/EEPROM
Considera el uso de finales de carrera ,cualquier reseteo del microcontrolador hara que no sepa en que posicion se encuentran las persianas.

Hola Jose

Muchas gracias por tu respuesta, si, conocia la eeprom pero me comentaron que si se usaba mucho tenia problemas despues.

el caso es que usaré una externa por i2c.

Si el micro se resetease, leeria los valores guardados en la eeprom para saber el en estado en el que se encontraba.

si ha perdido todo tendré que buscar una funcion para que cuando pase eso, sepa que se ha reseteado e ir a la ultima posision guardada desde la posicion superior o inferior, forzando a que suba completamente o baje completamente.

mucha gracias por tu ayuda.

feliz vuelta al la "nueva normalidad".

Dices que las persianas tienen finales de carrera internos ,quizas pudieras utilizarlos para un mejor control con el arduino.El que uses una eeprom externa no te va a quitar el problema de su ciclo de grabaciones limitado ,que por otro lado son de unos 100000 ciclos aprox. y siempre en grabacion,la lectura no perjudica a la eeprom.

Como dice jose la mejor opción es la EEPROM tiene muchos ciclos de escritura y muchas posiciones para llenar, puedes llenar 1 posición con la posición de la persiana y la siguiente con un puntero, así sabes cual leer, de esta forma puedes usar toda la EEPROM y no machacar sólo una posición, alargas la duración a muuuuuuchos ciclos, no creo que los acabes.

De todas maneras de una manera más complicada creo que podrías usar los finales de carrera existentes para posicionar la persiana con un reinicio, me explico, al reiniciarse podrías bajar o subir la persiana hasta el final de carrera existente, de esa forma sabrás la posición de inicio de trabajo.

Algunos ascensores hacen lo mismo, suben o bajan después de un reinicio hasta encontrar un final de carrera físico, es lo más seguro.