大家好,我正在使用Arduino MKR Zero和RFM95W LoRa模块,目标想是设计一个可以定时发送数据的发射器,在不发送数据时,Arduino板保持睡眠模式以节省能耗。
例如,每10分钟板子从睡眠模式中醒来,发送一次数据,再回到睡眠模式。
我实现睡眠模式的方法是使用RTC Zero library 中的 rtc.standbyMode(); 现阶段的问题是,我在setup function中设置好了rtc和lora的初始设置如下
Serial.begin(9600);
while(!Serial);
Serial.println("LoRa Sender");
LoRa.setPins(ss,rst,dio0);
while(!LoRa.begin(868E6)){
Serial.println(".");
delay(500);
}
rtc.begin(); //Start RTC library, this is where the clock source is initialized
rtc.setTime(hours, minutes, seconds); //set time
rtc.setDate(day, month, year); //set date
rtc.setAlarmTime(00, 00, 10); //set alarm time to go off in 10 seconds
//following two lines enable alarm, comment both out if you want to do external interrupt
rtc.enableAlarm(rtc.MATCH_HHMMSS); //set alarm
rtc.attachInterrupt(alarmMatch);
//puts SAMD21 to sleep
rtc.standbyMode();
在最后一行代码中,板子进入睡眠模式但无法再次醒来。 我尝试去除LoRa部分的代码,结果板子又可以醒来并继续执行interrupt和之后loop里的程序。
请问有过这方面经验的大神可以帮我看看原因吗?感谢!!
|