x小时后以睡眠模式唤醒Arduino
我需要将Arduino设置为睡眠模式以节省电池,但在x小时后(用户的选择),我需要Arduino醒来,做一些动作,然后再次进入睡眠状态。我怎么做?我看到睡眠模式可以被中断中断,但我需要中断不是由引脚触发的,而是由时间触发的。有什么建议吗?x小时后以睡眠模式唤醒Arduino,arduino,Arduino,我需要将Arduino设置为睡眠模式以节省电池,但在x小时后(用户的选择),我需要Arduino醒来,做一些动作,然后再次进入睡眠状态。我怎么做?我看到睡眠模式可以被中断中断,但我需要中断不是由引脚触发的,而是由时间触发的。有什么建议吗? 提前谢谢 问题的答案取决于所需的低功耗和时间精度。Achive 200nA睡眠电流需要一些工作,时间精度是低功耗的折衷方案 然而,以下是一些线索: 使用能够在某个精确时刻生成中断的外部RTC模块 使用外部32kHz Xtal异步时钟定时器2,并生成中断以从“
提前谢谢 问题的答案取决于所需的低功耗和时间精度。Achive 200nA睡眠电流需要一些工作,时间精度是低功耗的折衷方案 然而,以下是一些线索:
- 使用能够在某个精确时刻生成中断的外部RTC模块
- 使用外部32kHz Xtal异步时钟定时器2,并生成中断以从“省电”睡眠模式唤醒
- 在中断和复位模式下使用内部看门狗定时器从“断电”模式唤醒。您将每8秒醒来一次,但如果代码经过优化,时间会很短
- @5V 8MHz功耗约为5.5mA
- 带看门狗6.5µA的电源在5V时关闭
AtMega没有老化问题。它可以连续运行20年而不会出现问题(除非您使用EEPROM或闪存自编程)。谢谢您的回答!最后一个解决方案对我来说很好,但我有一些疑问:如果Arduino每8秒唤醒一次,我会消耗多少电流?有办法计算吗?第二:如果每8秒醒来一次,AtMega的破坏速度会更快吗?谢谢谢谢你的回答!我知道Arduino有许多元件会消耗电流,所以我制作了我的“Arduino on breadboard”,我得到了这个结果:空白草图为6.90mA,看门狗断电为4.3μa(平均为3.3V)。因此,我的最后一个问题是,我如何估计消耗量(如您的7.2µA)?非常感谢@您永远需要知道活动时间(RC振荡器启动+ISR执行)。最好的方法是在电源上加一个电阻(大约100R),然后用示波器测量电压。脉冲的持续时间为激活时间,峰值为激活电流的图像。然后Imean=(iactiveActivity+IsleepTsleep)/(Tsleep+Tactive)。如果没有示波器,很难估计活动时间(但你可以问某人是否对电子stackexchange有想法)。只有一个想法:我不明白iActivate和IsleepTsleep的作用是什么。我认为睡眠和触觉是睡眠模式下的时间和活动模式下的时间。谢谢@始终字母I通常用于电流(以安培为单位),因为U或V通常用于电压,P通常用于功率(以瓦特为单位)。我投票结束这个问题,因为这里没有明显的编程问题。像这样的问题可以在网上提出