我需要將Arduino設置爲睡眠模式以節省電量,但在x小時(使用戶選擇該選項)後,我需要Arduino喚醒,執行一些操作,然後再次入睡。我該怎麼做?我看到睡眠模式可以通過中斷來中斷,但我需要中斷不是通過引腳而是通過觸發來觸發。任何建議? 在此先感謝!在x小時後在睡眠模式下喚醒Arduino
1
A
回答
1
您的問題的答案取決於您需要多少低功率以及您需要多少時間精度。實現200nA的睡眠電流需要一些工作,並且時間精度是低功耗的折衷。
然而,這裏有一些線索:
- 使用外部RTC模塊,能夠在某個精確時刻
- 使用外部的32kHz XTAL到時鐘定時器異步產生中斷,併產生interupt從醒來「省電」睡眠模式
- 在中斷和復位模式下使用內部看門狗定時器從「關斷」模式喚醒。如果代碼已經優化,您將每8秒鐘喚醒一次,但時間很短。
最後的解決方案似乎最適合於一些基本演示。有了一個好的代碼,你將獲得光榮的結果。不要忘記閱讀MCU數據手冊中的「最小化功耗」部分。
編輯
我多少電流消耗,如果Arduino的喚醒每8秒? 有一種計算方法嗎?
太計算的平均電流(我想說的估計),在部分讀取數據表 「ATMEGA328P典型特徵」
- @ 5V爲8MHz的消費量約爲5.5毫安,在電力
- 下來@ 5V帶看門狗6.5μA。
大約1ms每8s激活一次,您將達到7.2μA的平均值。
請注意,電路板消耗不僅僅是Arduino板上的MCU。有了Arduino,我不知道你會在全球消費多少,但它會超過我的計算。要達到數據表中規定的200nA,您將需要自己製作電路板並使用外部低功耗看門狗...
第二:如果每8秒鐘喚醒一次,AtMega的速度會更快?
AtMega沒有老化問題。它可以持續運行20年,沒有問題(除非使用EEPROM或閃存自編程)。
相關問題
- 1. 在睡眠模式下從服務中喚醒Android Wear?
- 2. 睡眠和喚醒python
- 3. 喚醒睡眠線程
- 4. Scala:喚醒睡眠線程
- 5. iPad Kiosk睡眠喚醒
- 6. 睡眠監聽器喚醒
- 7. 睡眠模式下USB總線如何從機喚醒主機
- 8. Linux RTOS睡眠() - 喚醒()定時任務
- 9. 從睡眠模式喚醒時運行腳本android X86
- 10. 當Windows從睡眠模式喚醒時啓動應用程序
- 11. 從睡眠模式喚醒時音頻不會播放(android)
- 12. 當Windows進入睡眠模式,然後喚醒時,settimeout不起作用
- 13. 不斷喚醒和睡眠的最小功耗在Linux上?
- 14. 從睡眠或休眠模式進入/喚醒時,Windows服務如何表現?
- 15. iBeacon檢測通過UILocalNotification從睡眠模式喚醒iPhone
- 16. 如何喚醒內核中的用戶模式睡眠進程?
- 17. 如何逃脫網絡上的睡眠模式,網絡喚醒?
- 18. 特定時間後從睡眠中喚醒c#
- 19. 從睡眠C喚醒系統#
- 20. 睡眠.NET任務,喚醒CancellationTokenSource.Cancel()
- 21. 睡眠一個過程,並喚醒它
- 22. 如何喚醒睡眠(3)ing線程
- 23. Android深度睡眠和喚醒鎖
- 24. 喚醒處於睡眠狀態的QThread?
- 25. 喚醒線程和退出睡眠
- 26. Time1中斷喚醒單片機睡眠
- 27. C# - 如何喚醒睡眠線程?
- 28. 從iPhone上的睡眠事件喚醒?
- 29. 喚醒睡眠線程,否則睡眠N秒
- 30. 睡覺時喚醒任務
感謝您的回答!最後一個解決方案對我來說很好,但我有一些疑問:如果Arduino每8秒鐘醒來一次,我還能消耗多少電流?有一種方法來計算它?第二:如果每8秒鐘醒來一次,AtMega的速度會更快?謝謝! – Eternyt
@Eternyt我更新了答案。 – Julien
感謝您的回答!我知道一個Arduino有很多組件可以消耗電流,所以我在麪包板上製作了「Arduino」,我得到了這樣的結果:6.90mA的空白草圖和4.3uA的掉電帶看門狗(平均**,3.3V **)。所以我最後一個問題是,我怎麼估計消耗量(像你的7.2μA)?非常感謝! – Eternyt