毛驴 发表于 2014-8-5 20:27:30

mega 2560进入睡眠模式的问题

我在网上看到一个关于mega 2560休眠模式的帖子,但是里面只能睡眠8s,我也不太清楚是否能省电,里面用到的是一个外国人写的库,叫lowpower,我想要休眠30分钟以上该怎么办,有没有#include "LowPower.h"

const byte swPin = 2;      // 開關腳位
const byte ledPin = 13;    // LED腳位
byte times = 0;            // 記錄執行次數
volatile byte state = 0;   // 暫存執行狀態

void wakeISR() {
    state = 1;
}

void setup() {
Serial.begin(9600);

pinMode(ledPin, OUTPUT);
pinMode(swPin, INPUT);
digitalWrite(swPin, HIGH);

// 附加中斷服務常式,當中斷0為低電位時,喚醒處理器。
attachInterrupt(0, wakeISR, LOW);
}

void loop()
{
if (state) {
    Serial.println("Running...");
    state = 0;
}

// 閃爍5次LED之後進入睡眠
digitalWrite(ledPin, !digitalRead(ledPin));
delay(500);
times ++;
Serial.println(times);

if (times > 5) {
    times = 0;
   
    // 用最低耗電模式進入睡眠
    // SLEEP_FOREVER代表停用「看門狗」,約可節省 4µA 電流消耗。
    // 選擇性的ADC_OFF,代表關閉「類比數位轉換器(ADC)」
    // 選擇性的BOD_OFF,代表關閉「電源供應電壓準位偵測器(BOD)」,約可節約 17µA。
    LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
}
}相关的其他库。下面是代码

zhangyadong300 发表于 2014-8-7 07:33:05

看一下这个帖子,老外的库,试了一下,能达到你的要求

zhangyadong300 发表于 2014-8-7 07:33:32

http://www.geek-workshop.com/thread-8715-2-1.html
页: [1]
查看完整版本: mega 2560进入睡眠模式的问题