我是一名學生,剛剛成爲Arduino的新手。我試圖製作一個自動植物澆水系統,它應該每天爲植物澆水兩次。無論如何,要讓Arduino在每天所需的時間完全執行任務,然後將自己設置爲睡眠模式?如何讓Arduino在規定的時間每天執行一項任務?
回答
正是在日常
如果你的Arduino是同步於內部RC所需要的時間,你不會有足夠的精度(1%)。你的時鐘將從1個月後約7小時衍生而來。
如果您需要非常好的精度,您可以使用RTC模塊(2ppm)。 你的時鐘將在1個月後從約5秒推導出來。
或者您可以簡單地使用
millis()
函數,該函數在Xtal振盪器(200ppm)上應該足夠精確。 您的時鐘將在1個月後衍生約10分鐘。
,因爲它不需要額外的部件,我將開始與最後的解決方案,並改善與需要RTC。
,然後自身設置爲睡眠模式
AVR內核已不同程度睡眠,一些將保持時鐘(空閒)和應與millis()
溶液中使用並且一些將不保持時鐘(掉電),但功效更高,可與RTC一起使用。解決方案取決於您需要的低功率。請注意,由於功率調節器和其他組件,Arduino電路板和IDE無法實現最大的低功耗。要達到Atmega328數據表中描述的200nA睡眠,它需要一些工作。
米利斯()例如
#define INTERVAL_1_DAY 86400000 // 1day => 24*60*60*1000
unsigned long nextDate = INTERVAL_1_DAY;
void loop()
{
unsigned long currentDate = millis(); //millis rollover (overflow) after about 50 days
if(currentDate > nextDate // time elapsed, do action
&& currentDate < (nextDate + INTERVAL_25_DAY)) //treatement of the overflow of millis() and *Dates ...
{
nextDate += INTERVAL_1_DAY; //you have to use nextDate here and not current date like in some examples to have no sweep (some µs each day)
// do your action here
}
// you may add some idle sleep here
// 10s sleep would give a execution date glitch e.g. [3pm to 3pm+10s]
// but some code can fix this
}
你可以給一個例如。使用millis()函數 –
我添加了一個應該保持最佳精度的示例(未測試) – Julien
- 1. android日程安排任務在特定時間每天執行
- 2. 如何在指定的時間每天執行Windows服務
- 3. 每天執行一次任務
- 4. 每天在特定GMT時間執行函數每天
- 5. 如何在同一時間每天一次在c#服務中執行代碼?
- 6. 如何每小時執行一項任務?
- 7. 如何在特定時間每天執行代碼?
- 8. 每天在同一時間運行sitecore計劃任務
- 9. Android中每秒執行一項任務
- 10. 如何在準確時間每天執行一次動作
- 11. 在進程內每隔一段時間執行一次任務
- 12. 在特定時間執行任務
- 13. 每天午夜執行任務 - Grails 3.2.2
- 14. 在指定時間每天執行一次操作
- 15. 每天在特定時間執行一些代碼
- 16. 任務執行時間高於定時器執行時間
- 17. 如何從Java每天運行一項任務?
- 18. 如何在特定時間每天運行Windows服務
- 19. Gulp回調 - 如何讓Gulp先執行一項任務?
- 20. 如何在預定時間後在MySQL中執行任務
- 21. Spring Java - 運行進程每天執行一次任務
- 22. 如何在特定時間執行任務?
- 23. 如何在特定的時間,每天晚上執行代碼在Asp.net網站
- 24. 在不同的時間每天執行一個php腳本
- 25. Arduino函數執行時間
- 26. 如何在ASP.net中每天在確切的時間執行一個函數?
- 27. 如何讓C或C++程序每隔X秒執行一次特定的任務,但仍然要在兩者之間執行其他任務?
- 28. 如何在設定的時間每天執行PHP查詢+方法建議
- 29. 我們如何在nodejs每天的特定時間執行消息?
- 30. 強制線程在特定時間每天執行操作
你爲什麼不看看http://playground.arduino.cc/Main/DS1302或任何其他RTC可用。 – Ouss4
使用ds1302模塊,任務只能每天完成一次。 –
你每天都做,而不是DS1302 ... – Ouss4