Podrías usar un microcontrolador que haya incorporado EEPROM. El PIC16F84A de 8 bits tiene 64 bytes de EEPROM, que es bueno para típicamente 10,000,000 y un mínimo de 1,000,000 de escrituras en cada byte (esto se conoce como resistencia de byte). El PIC elegido en otra respuesta, PIC12F635 tiene una EEPROM de 128 bytes y una resistencia de 100.000 escrituras. El PIC24F16KA102 , un procesador de 16 bits, tiene 512 bytes de EEPROM y también una resistencia de bytes de 100,000 escrituras.
El OP no indica con qué frecuencia parpadeará el LED. Para los propósitos de esta discusión, supongamos que es cuatro veces por minuto.
En un año parpadeará
4 ∗ 60 ∗ 24 ∗ 365 = 2 , 102 , 400 t i m e s .
Dado que la EEPROM necesita capturar los últimos eventos de encendido y apagado, se escribirá al doble de ese número, o alrededor de 4,2 millones de veces . En cinco años, esto es 21 millones de veces.
Claramente, esto excederá las especificaciones de cualquier EEPROM que ahora haya incorporado en un microcontrolador.
Pero hay una solución simple para esto. En lugar de utilizar el mismo byte una y otra vez para realizar un seguimiento del estado activado o desactivado, se puede utilizar una matriz de bytes, que llenan todo el chip.
Necesita dos bytes para cada elemento en la matriz. Entonces, una EEPROM de 64 bytes, como la del PIC16F84A, podría contener 32 elementos. Cada vez que escribe en la EEPROM, escribe un 0 en el byte de estado (lo que significa que este elemento tiene datos) y un 0 en el byte de datos (el LED estaba apagado por última vez) o un 0xFF (el LED estaba encendido por última vez). La próxima vez que acceda a la EEPROM, indexará a través de los elementos hasta que encuentre uno con un byte de estado 0xFF, y luego use ese elemento. Si no queda ninguno, reinicialice la EEPROM y comience de nuevo (para los PIC de gama baja, esto significa escribir 0xFF en cada uno de los bytes de estado; para el PIC24, hay un comando para borrar la EEPROM completa). Si necesita conocer el último estado del LED, indexe a través de la matriz como antes, pero ahora retroceda un elemento y lea el byte de datos.
Esto esencialmente divide el número de accesos a un solo byte por un factor de 16 para el PIC16F84A (16 y no 32 porque cada uno de los bytes de estado se escribe dos veces). Por lo tanto, podría manejar 16 millones de escrituras en total, suficiente para casi cuatro años de datos. Y el PIC12F635 con su EEPROM más grande pero con una resistencia de byte menor de 100K, podría manejar 3.2 millones de escrituras en total, suficiente para nueve meses.
El PIC24F16KA102, con su EEPROM de 512 bytes y su función de borrado masivo, podría manejar 25.6 millones de escrituras, suficiente por más de cinco años.
Si la tasa de parpadeo fue solo cuatro veces por hora en lugar de cuatro veces por minuto , entonces esto significa un total de 70,080 escrituras por año. ¡Incluso el PIC12F635, con su resistencia de 100,000 escrituras por byte, duraría 45 años!