답변:
아니요, 코드는 MCU를 "마모"하지 않습니다. 일반적으로 당신이하는 일에 관계없이 거의 같은 수준의 활동이 수행되고 있습니다. delay()
"유휴"상태 일 때도 많은 작업을 수행합니다.
CPU가 IDLE 또는 SLEEP 모드에 배치하는 작업을 줄 이도록하는 명령이 있지만 MCU의 "마모"를 줄이기보다는 전력을 절약하는 데 사용됩니다.
물론 수명이 제한된 특정 사항이 있으며 EEPROM에 쓰는 것과 플래시 메모리에 쓰는 것과 같이 제한된 횟수 만 사용할 수 있으므로 항상 그런 일을하고 싶지는 않습니다. 그 외에는, 당신이 무엇을하든 MCU가 마모되지 않습니다.
그렇지 않습니다. 글쎄, 20 년 정도 달리면 천천히 마모 될 수 있습니다. (대부분의 다른 물리적 제품처럼)? 적어도 코드 복잡성에 의존하는 것이 아니라 동일한 메모리 섹션에서 수행 된 쓰기 작업 수입니다. 또한 마모되면 벽돌이 깨져서 LED 깜박임과 같은 간단한 코드가되지 않습니다.
Arduino (Uno)에는 3 개의 메모리 부분이 있습니다. SRAM, FLASH 및 EEPROM. SRAM은 논리적 트랜지스터 게이트와 비슷합니다. 변수를 저장해도 마모되지 않습니다. FLASH 및 EEPROM은 플로팅 게이트로 구성됩니다. 새 데이터를 쓸 때 천천히 마모됩니다. Ateml microcontroller의 데이터 시트에서 다음 과 같이 말합니다.
플래시 메모리의 내구성은 10,000 회 이상의 쓰기 / 삭제주기입니다. (8 장에서)
EEPROM의 내구성은 최소 100,000 쓰기 / 삭제주기입니다. (8 장부터)
그러나 플래시 메모리는 코드 실행을위한 공간입니다. Arduino가 실행 중일 때는 쓰기 작업이 수행되지 않습니다. 새 코드를 업로드 할 때만 플래시 메모리를 작성하십시오. 따라서 코드를 10,000 번 이상 업로드하면 마모됩니다.
정말로 원한다면 Arduino가 꺼져있을 때 가변 데이터를 유지하기 위해 FLASH 메모리를 자체 재 프로그래밍하는 특수 코드를 만들 수 있습니다. 이러한 종류의 프로그램을 작성할 때는 FLASH 메모리에 쓰기 내구성이 많지 않기 때문에 느리게 마모됩니다. 그렇기 때문에 Arduino가 꺼져 있어도 데이터를 유지하려면 수명이 훨씬 더 긴 EEPROM을 사용하는 것이 좋습니다.
요약하면 코드 실행이 아닌 FLASH 또는 EEPROM 메모리를 다시 작성하여 마모됩니다.
... (또는 일반적으로 다른 마이크로 컨트롤러) ...
다른 답변은 훌륭하지만 한 가지 작은 예외가 있습니다.
FRAM (Ferroelectric RAM) 은 플래시와 EEPROM의 비 휘발성, SRAM의 쓰기 가능성 및 DRAM의 밀도를 결합한 메모리 형태입니다.
그러나 FRAM의 읽기 작업은 FRAM에 저장된 데이터를 파괴하고 쓰기 작업은 FRAM 구성 자체를 파괴합니다 (데이터를 읽음으로써 데이터가 파괴되므로 매번 다시 기록해야 함). 코드가 FRAM에 있으면 코드를 실행하면 MCU가 제 시간에 마모됩니다. 그러나 FRAM의 쓰기 내구성이 수백만 억에 달하기 때문에 장치 수명 기간 동안 FRAM으로 인해 MCU가 작동하지 않을 가능성이 낮습니다.
FRAM을 사용하는 MCU의 예로는 TI의 MSP430FRxx 라인이 있습니다.
아마도 ... ... Atmel 칩은 시간이 지남에 따라 더워질 수 있지만 (지연이 이것을 막지 못하더라도) 열을 방출 할 가능성이 있다면 문제가 없습니다. 그러나 대부분 오버 클러킹만으로도 심각한 문제가 발생하거나 완전히 닫힌 상자 또는 더운 환경에서 Arduino를 사용할 수 있습니다.
이에 비해 많은 컴퓨터가 전원을 끄지 않고 몇 년 동안 작동하고 있기 때문에 Atmel (칩)은 발열이 완화 될 수있는 한 차이가 없습니다.
Atmels의 열 센서에 대한 자세한 내용은 다음을 참조하십시오. 내부 온도 센서
delay
동일한 양의 처리 능력을 사용합니다.
delay
는 CPU를 회전시키는 것과 달리 전력 소비를 약 1,000 배 줄 입니다. 이것은 물론 비용이 있습니다 :)