我需要将Arduino置于睡眠模式以节省电量,但在x小时后(一个让用户选择),我需要Arduino醒来,做一些动作,然后再次进入睡眠状态。我该怎么做?我看到睡眠模式可以通过中断来中断,但我需要中断不是由引脚触发,而是在时间触发。有什么建议吗? 提前致谢!
答案 0 :(得分:1)
您的问题的答案取决于您需要多少低功耗以及您需要的时间精度。 Achive 200nA睡眠电流需要一些工作,时间精度是低功耗的折衷。
但是,这里有一些线索:
最后的解决方案似乎最适合某些基本演示。有了良好的代码,您将获得光荣的结果。不要忘记阅读MCU数据表中的“最小化功耗”部分。
修改强>
如果Arduino每8秒唤醒一次,我会消耗多少电流? 有一种计算方法吗?
在“atmega328P典型特征”部分计算平均电流(我会说估计)读取数据表
每8秒活动约1ms,你将达到7.2μA的平均值。
请注意,主板消耗不仅仅是Arduino板上的MCU。使用Arduino我不知道你将在全球消费多少,但它将超过我的计算。要达到数据表中规定的200nA,您需要自己制作电路板并使用外部低功耗看门狗......
第二:如果每8秒醒来,AtMega会破坏得更快吗?
AtMega没有老化问题。它可以连续运行20年而不会出现问题(除非您使用EEPROM或闪存自编程)。