Ви можете використовувати мікроконтролер, вбудований в EEPROM. 8-бітний PIC16F84A має 64 байти EEPROM, що підходить зазвичай для 10 000 000 і мінімум 1 000 000 записів у кожен байт (це відоме як витривалість байтів). PIC, обраний в іншій відповіді, PIC12F635 має 128-байтний EEPROM та витривалість байтів 100 000 записів. PIC24F16KA102 , 16-бітний процесор, має 512 байт EEPROM , а також витривалість байт 100000 записів.
ОП не вказує, як часто блиматиме світлодіод. Для цілей цієї дискусії припустимо, що це чотири рази на хвилину.
Через рік він блимне
4∗60∗24∗365=2,102,400 times.
Оскільки EEPROM повинен фіксувати як останні, так і вихідні події, то він буде записаний удвічі більше, ніж приблизно 4,2 мільйона разів . За п’ять років це 21 мільйон разів.
Зрозуміло, що це перевищить характеристики будь-якого EEPROM, який я зараз вбудував у мікроконтролер.
Але для цього є просте рішення. Замість того, щоб використовувати один і той же байт знову і знову для відстеження стану ввімкнення або вимкнення, можна використовувати масив байтів, який заповнює весь чіп.
Вам потрібно два байти для кожного елемента масиву. Таким чином, 64-байтний EEPROM, як і PIC16F84A, міг би містити 32 елементи. Кожен раз, коли ви пишете в EEPROM, ви пишете 0 в байт статусу (тобто цей елемент має дані), або 0 в байт даних (світлодіод останній вимикався), або 0xFF (світлодіод був останній увімкненим). Наступного разу, коли ви отримуєте доступ до EEPROM, ви індексуєте елементи, доки не знайдете байта зі статусом 0xFF, а потім використовуєте цей елемент. Якщо нічого не залишилося, повторно ініціалізуйте EEPROM і починайте спочатку (для PIC-кодів нижчого класу це означає записувати 0xFF в кожен з байтів статусу; для PIC24 є команда видалити весь EEPROM). Якщо вам потрібно знати останній статус світлодіода, ви індексуєте масив, як і раніше, але тепер повертаєтесь на один елемент і читаєте байт даних.
Це по суті ділить кількість доступу до одного байта на коефіцієнт 16 для PIC16F84A (16, а не 32, оскільки кожен з байтів статусу записується у два рази). Таким чином, це змогло б обробити 16 мільйонів записів, достатньо для майже чотирьох років даних. А PIC12F635 з його більшим EEPROM, але меншою витривалістю в байт 100 К, зможе обробити 3,2 мільйона записів, достатньо для дев'яти місяців.
PIC24F16KA102 зі своїм 512-байтним EEPROM та функцією масового видалення зможе обробляти 25,6 мільйона записів, достатньо протягом п'яти років.
Якщо швидкість моргання становила лише чотири рази на годину замість чотирьох разів на хвилину , то це означає загалом 70,080 записів на рік. Навіть PIC12F635 з витривалістю 100 000 записів на байт тривав би 45 років!