Możesz użyć mikrokontrolera, który ma wbudowaną pamięć EEPROM. 8-bitowy PIC16F84A ma 64 bajty pamięci EEPROM, co jest dobre na zwykle 10 000 000 i co najmniej 1 000 000 zapisów do każdego bajtu (jest to znane jako wytrzymałość bajtów). PIC wybrany w innej odpowiedzi, PIC12F635, ma 128-bajtową pamięć EEPROM i wytrzymałość na bajty wynoszącą 100 000 zapisów. PIC24F16KA102 , procesor 16-bitowy, ma 512 bajtów pamięci EEPROM, a także wytrzymałość bajtowy 100.000 zapisów.
OP nie wskazuje, jak często dioda LED będzie mrugać. Dla celów tej dyskusji załóżmy, że jest to cztery razy na minutę.
Za rok zacznie mrugać
4∗60∗24∗365=2,102,400 times.
Ponieważ pamięć EEPROM musi przechwytywać zarówno ostatnie zdarzenia włączenia, jak i wyłączenia, zostanie zapisana do dwukrotności tej liczby lub około 4,2 miliona razy . W ciągu pięciu lat jest to 21 milionów razy.
Oczywiście, przekroczy to specyfikację każdej pamięci EEPROM, którą teraz wbudowałem w mikrokontroler.
Ale jest na to proste rozwiązanie. Zamiast używać tego samego bajtu w kółko do śledzenia statusu włączenia lub wyłączenia, można użyć tablicy bajtów, które wypełniają cały układ.
Potrzebujesz dwóch bajtów dla każdego elementu w tablicy. Tak więc 64-bajtowa pamięć EEPROM, taka jak w PIC16F84A, może pomieścić 32 elementy. Za każdym razem, gdy piszesz do EEPROM, zapisujesz 0 do bajtu stanu (co oznacza, że ten element zawiera dane), albo 0 do bajtu danych (dioda LED była ostatnio wyłączona), albo 0xFF (dioda LED była ostatnio włączona). Następnym razem, gdy uzyskasz dostęp do EEPROM, będziesz indeksować elementy, aż znajdziesz jeden z bajtem statusu 0xFF, a następnie użyjesz tego elementu. Jeśli nie ma już żadnych, ponownie zainicjuj pamięć EEPROM i rozpocznij od nowa (w przypadku niższych PIC oznacza to zapisanie 0xFF do każdego z bajtów statusu; w przypadku PIC24 istnieje polecenie usunięcia całej EEPROM). Jeśli chcesz poznać ostatni status diody LED, indeksuj tablicę jak poprzednio, ale teraz cofnij jeden element i odczytaj bajt danych.
To zasadniczo dzieli liczbę dostępu do jednego bajtu przez współczynnik 16 dla PIC16F84A (16 a nie 32, ponieważ każdy z bajtów statusu jest zapisywany dwukrotnie). Byłby w stanie obsłużyć 16 milionów zapisów łącznie, wystarczający na prawie cztery lata danych. A PIC12F635 z większą pamięcią EEPROM, ale mniejszą wytrzymałością bajtową wynoszącą 100 000, byłby w stanie obsłużyć łącznie 3,2 miliona zapisów, co wystarczy na dziewięć miesięcy.
PIC24F16KA102 z 512-bajtową pamięcią EEPROM i funkcją wymazywania danych byłby w stanie obsłużyć 25,6 miliona zapisów, co wystarczy na ponad pięć lat.
Jeśli szybkość migania wynosiła tylko cztery razy na godzinę zamiast czterech razy na minutę , oznacza to w sumie 70 080 zapisów rocznie. Nawet PIC12F635, ze swoją wytrzymałością 100 000 zapisów na bajt, przetrwałby 45 lat!