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.
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.
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.