EEPROM에 내장 된 마이크로 컨트롤러를 사용할 수 있습니다. 8 비트 PIC16F84A 는 64 바이트의 EEPROM을 가지고 있으며 이는 일반적으로 10,000,000 개에 적합하며 각 바이트에 최소 1,000,000 회의 쓰기 (바이트 내구성이라고도 함)에 적합합니다. 다른 답변에서 선택한 PIC12F635는 128 바이트 EEPROM과 100,000 쓰기의 바이트 내구성을 갖습니다. PIC24F16KA102 , 16 비트 프로세서는, EEPROM (512)의 바이트도 10 개의 쓰기 바이트 내구성을 갖는다.
OP는 LED가 얼마나 자주 깜박 일지를 나타내지 않습니다. 이 논의의 목적으로 분당 4 회라고 가정합니다.
1 년 후 깜박입니다
4 * 60 * 24 * 365 = 2 , 102 , 400 t 난 해요 예 들 .
EEPROM은 마지막 켜짐 및 꺼짐 이벤트를 모두 캡처해야하므로이 수의 두 배 또는 약 420 만 회에 기록 됩니다. 5 년 동안이 수치는 2 천 1 백만 회입니다.
분명히 이것은 현재 마이크로 컨트롤러에 내장 된 모든 EEPROM의 사양을 능가합니다.
그러나 이에 대한 간단한 해결책이 있습니다. 온 또는 오프 상태를 추적하기 위해 동일한 바이트를 반복해서 사용하는 대신 바이트 배열을 사용하여 전체 칩을 채울 수 있습니다.
배열의 각 요소마다 2 바이트가 필요합니다. 따라서 PIC16F84A와 같은 64 바이트 EEPROM은 32 개의 요소를 보유 할 수 있습니다. EEPROM에 쓸 때마다 상태 바이트에 0을 쓰고 (이 요소에 데이터가 있음을 의미) 0에 데이터 바이트 (LED는 마지막 꺼짐) 또는 0xFF (LED는 마지막 켜짐)를 씁니다. 다음에 EEPROM에 액세스 할 때 0xFF 상태 바이트를 가진 요소를 찾을 때까지 요소를 통해 색인 한 다음 해당 요소를 사용하십시오. 남은 것이 없으면 EEPROM을 다시 초기화하고 다시 시작하십시오 (저급 PIC의 경우 각 상태 바이트에 0xFF를 쓰는 것을 의미합니다. PIC24의 경우 전체 EEPROM을 지우라는 명령이 있습니다). LED의 마지막 상태를 알아야하는 경우 이전과 같이 어레이를 통해 색인을 생성하지만 이제 한 요소로 돌아가 데이터 바이트를 읽습니다.
이는 기본적으로 단일 바이트에 대한 액세스 수를 PIC16F84A에 대해 16의 계수로 나눕니다 (각 상태 바이트가 두 번 기록되므로 32가 아닌 16). 따라서 거의 4 년간의 데이터에 충분한 총 1600 만 쓰기를 처리 할 수 있습니다. 또한 EEPROM은 크지 만 바이트 내구성은 100K 인 PIC12F635는 9 개월 동안 총 320 만 쓰기를 처리 할 수 있습니다.
512 바이트 EEPROM과 대량 지우기 기능을 갖춘 PIC24F16KA102는 5 년 넘게 2560 만 쓰기를 처리 할 수 있습니다.
깜박임 속도가 분당 4 회가 아닌 시간당 4 회만 된다면 이는 연간 총 70,080 회의 쓰기를 의미합니다. 바이트 당 100,000 쓰기의 내구성을 가진 PIC12F635조차도 45 년 동안 지속될 것입니다!