本帖最后由 i7456 于 2014-1-5 10:13 编辑
PLAYGROUND有详细的介绍:
http://playground.arduino.cc/Learning/arduinoSleepCode
下面是一个简单的例子:
pro mini的板子,16Mhz 3.3V,拆掉了电源指示的LED。3.89V电池供电。sleep模式下实测电流为0.156mA。
D2由低变高时,从sleep模式下唤醒一次。LED亮时电流7.63mA,LED灭6.85mA。
- #include <avr/sleep.h>
- void wakeupFunction(){
- }
- void toSleep(){
- attachInterrupt(0,wakeupFunction,RISING);
- sleep_mode();
- detachInterrupt(0);
- }
- void setup() {
- pinMode(13, OUTPUT);
- digitalWrite(13, LOW);
- pinMode(9, INPUT_PULLUP);
- set_sleep_mode(SLEEP_MODE_PWR_DOWN);
- sleep_enable();
- }
- void loop() {
- if(digitalRead(9)==HIGH)
- {
- digitalWrite(13, HIGH);
- delay(3000);
- digitalWrite(13, LOW);;
- delay(3000);
- }
- toSleep();
- }
复制代码 |