답변:
참고 : 나는 나의 대답이 받아 들여지더라도 Arduino 보드로 에너지를 절약하려면 독자가 Anindo의 대답을 먼저 읽어야한다는 것을 지적하고 싶었습니다. 디자인에서 해당 항목을 해결하면 내 대답을 읽고 MCU를 저전력 모드로 설정하는 방법에 대해 걱정해야합니다.
Arduino가 전력을 절약 할 수있는 몇 가지 기술이 있습니다. 몇 가지를 나열한 다음 더 자세히 설명하는 페이지를 알려 드리겠습니다.
컨트롤러가 중요한 작업을 수행하지 않는 동안 (예를 들어 센서의 읽기와 다음 읽기 사이), 명령을 사용하여 컨트롤러를 아래 절전 모드 중 하나로 설정할 수 있습니다 set_sleep_mode (SLEEP_MODE_PWR_DOWN)
. 각 모드 옆에는 각 모드의 대략적인 전력 소비가 있습니다.
브라운 아웃 감지 (낮은 전압이 감지되면 컨트롤러를 끄는 회로)를 비활성화합니다 .
ADC 끄기 (아날로그에서 디지털로 변환)
내부 시계를 사용하십시오
그런 다음 컨트롤러를 휴면 상태로 만들 때 아래의 하나 이상의 메커니즘을 사용하여 컨트롤러를 깨우고 무언가를 수행해야합니다.
신호와 함께 일어나
타이머와 함께 일어나
이것은 내가 만든 요약입니다-
이 기사는 주로 ATmega328P에 적용되지만이 기술은 다른 Arduino 호환 컨트롤러에도 적용됩니다. TheDoctor가 잘 말했듯이, 컨트롤러가 이러한 기술 중 어느 것을 지원하는지와 더 정확하게 수행하는 방법을 확인하려면 datashet을 확인해야합니다.
실제로 Arduino 보드에서 가장 큰 전력 낭비는 선형 전압 레귤레이터입니다.
보드의 마이크로 컨트롤러, LED 또는 기타 주변 장치가 전류를 소비하는 한 선형 레귤레이터는 difference between supply and board voltage
x와 동일한 전력을 낭비 current drawn
합니다.
따라서 첫 번째 수정은 보드의 전원 표시기 LED를 분리하고 가능한 한 다른 LED를 사용하지 않는 것입니다. 둘째, 온보드 레귤레이터에 전력을 공급하기에 충분한 낮은 전압을 보드에 공급하십시오.
원래 설계에서 사용 된 전압 조정기는 낮은 대기 전류를 자랑하지 않습니다. 이는 보드 내에 전력을 끌어 들이지 않아도 레귤레이터 자체가 켜져있을 때마다 상당한 전력을 낭비한다는 것을 의미합니다.
쉬운 해결 방법은 온보드 레귤레이터를 매우 낮은 정 동작 전류 등급의 LDO (로우 드롭 아웃 선형 레귤레이터)로 교체하는 것입니다. 다양한 공급 업체 사이트에서 파라 메트릭 검색을 수행하면 대체 할 가능성이 높습니다.
위의 단계를 수행하더라도 Arduino 보드는 선택한 LDO가이를 지원하는 경우 LDO를 저전력 모드로 설정하는 메커니즘을 제공하지 않습니다. 전력 효율적인 설계는 일반적으로 전압 조정기의 "슬립 모드"핀을 사용하여 상당한 에너지를 절약합니다. 여기서는 옵션이 아닙니다.
가능한 모든 절전 모드와 트릭이 마이크로 컨트롤러 수준에서 적용 되더라도 Arduino는 기본적으로 초 저전력 장치로 설계되지 않았습니다. 몇 가지 중요하지 않은 애플리케이션을 실험 한 결과, 전압 레귤레이터와 LED가 어쨌든 나머지를 소비하기 때문에 실제로 달성 가능한 최고는 애플리케이션에 따라 약 10 % ~ 30 %의 전력 절약이라는 것을 알았습니다.
200 페이지 데이터 시트를 읽은 다음 혼란스러운 비트 시프트 및 레지스터로 혼란을 겪을 수 있지만 다음 라이브러리를 권장합니다. http://playground.arduino.cc/Code/Enerlib
또한 Uno 또는 usb-to-serial 칩이있는 칩을 사용하는 경우이를 비활성화하거나 제거 할 수 있습니다.
프로젝트가 작동하고 "생산"환경에 배포해야하는 경우 Arduino를 베어 메타 ATMega328 또는 ATTiny 제품군 칩으로 교체 할 수 있습니다. Arduino 보드의 모든 전력 공급기를 제거하면 필요하지 않습니다. 나는 찾았다 :
더 많은 정보