Vous pouvez utiliser un microcontrôleur intégré à l'EEPROM. Le PIC16F84A 8 bits possède 64 octets d'EEPROM, ce qui est généralement bon pour 10 000 000 et un minimum de 1 000 000 d'écritures dans chaque octet (c'est ce que l'on appelle l'endurance des octets). Le PIC choisi dans une autre réponse, PIC12F635 a une EEPROM de 128 octets et une endurance d'octets de 100 000 écritures. Le PIC24F16KA102 , un processeur 16 bits, possède 512 octets d'EEPROM et également une endurance d'octets de 100 000 écritures.
L'OP n'indique pas à quelle fréquence la LED clignote. Aux fins de cette discussion, supposons qu'il s'agit de quatre fois par minute.
Dans un an, il clignotera
4 ∗ 60 ∗ 24 ∗ 365 = 2 , 102 , 400 t i m e s .
Étant donné que l'EEPROM doit capturer à la fois les derniers événements d'activation et de désactivation, elle sera écrite au double de ce nombre, soit environ 4,2 millions de fois . En cinq ans, c'est 21 millions de fois.
De toute évidence, cela dépassera les spécifications de toute EEPROM que j'ai maintenant intégrée dans un microcontrôleur.
Mais il existe une solution simple à cela. Au lieu d'utiliser le même octet encore et encore pour garder une trace de l'état activé ou désactivé, on peut utiliser un tableau d'octets, qui remplit la puce entière.
Vous avez besoin de deux octets pour chaque élément du tableau. Une EEPROM de 64 octets, comme celle du PIC16F84A, pourrait donc contenir 32 éléments. Chaque fois que vous écrivez dans l'EEPROM, vous écrivez un 0 à l'octet d'état (ce qui signifie que cet élément contient des données), et soit un 0 à l'octet de données (la LED était éteinte en dernier) ou un 0xFF (la LED était allumée en dernier). La prochaine fois que vous accédez à l'EEPROM, vous indexez les éléments jusqu'à ce que vous en trouviez un avec un octet d'état 0xFF, puis utilisez cet élément. S'il n'en reste plus, réinitialisez l'EEPROM et recommencez (pour les PIC bas de gamme, cela signifie écrire 0xFF dans chacun des octets d'état; pour le PIC24, il existe une commande pour effacer la totalité de l'EEPROM). Si vous avez besoin de connaître le dernier état de la LED, vous indexez le tableau comme précédemment, mais vous revenez maintenant à un élément et lisez l'octet de données.
Cela divise essentiellement le nombre d'accès à un seul octet par un facteur de 16 pour le PIC16F84A (16 et non 32 car chacun des octets d'état est écrit deux fois). Ainsi, il serait capable de gérer 16 millions d'écritures au total, assez pour près de quatre ans de données. Et le PIC12F635 avec sa plus grande EEPROM mais une endurance d'octets plus petite de 100K, serait capable de gérer 3,2 millions d'écritures au total, assez pour neuf mois.
Le PIC24F16KA102, avec son EEPROM de 512 octets et sa fonction d'effacement en masse, serait capable de gérer 25,6 millions d'écritures, ce qui est suffisant pour plus de cinq ans.
Si le taux de clignotement n'était que de quatre fois par heure au lieu de quatre fois par minute , cela signifie un total de 70 080 écritures par an. Même le PIC12F635, avec son endurance de 100 000 écritures par octet, durerait 45 ans!