2016-03-08 365 views
0

當試圖找到一種可靠的方式來使用看門狗來防止故障(代碼鎖定)並使用Arduino節省電池時,我遇到了this websiteArduino:使用看門狗防止故障和節能

我試過了代碼,它工作正常。不過,我也想使用串口監視器。我嘗試添加Serial.begin(9600);然而,在設置中,串行監視器中顯示的大部分內容(來自主循環內的代碼)都是奇怪的字符(波特率設置爲9600)。這是關於配置wdt和Serial.begin(9600)在代碼中的位置的函數嗎?

我還想使用外部中斷(通過數字引腳3上的按鈕)將電路板從睡眠中喚醒。如何基於當前的代碼實現?我知道如何使用不同的方法讓主板在不使用任何監視器的情況下進入睡眠狀態,但是,我一直未能使用此代碼進行工作。

非常感謝您的幫助。

+0

串行和看門狗應該不成問題。你把你的看門狗時間縮短了嗎? ...可能你的日常工作需要很長時間? – Fruchtzwerg

+0

我已經設定好了,所以看門狗開火前的時間是8秒。而且程序因爲延遲而需要超過2秒,所以它不應該是看門狗時間太短的問題。我添加了Serial.begin(9600);在安裝後的第一行以及一條表示程序正在啓動的消息。這在串行監視器中顯示得很好。主循環中的任何打印都是隨機字符。 – Maus

+0

串口不應該是問題。看看這裏:http://forum.arduino.cc/index.php?topic=63651.0 – Fruchtzwerg

回答

0
  • 正如上面所說的,串行通信應該正常工作。如果沒有代碼的看門狗部分,你確定你能夠使你的串行通信正常工作嗎?我已經使用網站上提供的看門狗技巧以及串行通信,而在Arduino Uno上沒有任何問題,所以我猜想串行通信問題在於代碼中的其他地方。 你可以使用看門狗管理部分,一個串行通信或你的循環()中的某個地方編寫代碼的裸骨頭示例,如果你想要一些延遲/無限循環來測試看門狗的觸發,請在此處發佈它,測試它在你的董事會,並指出你是否有問題?

  • 我從來沒有使用一個pin中斷,但似乎谷歌提供了一些不錯的結果與示例代碼。你有沒有嘗試谷歌給出的結果?

https://www.arduino.cc/en/Reference/AttachInterrupt

http://www.allaboutcircuits.com/technical-articles/using-interrupts-on-arduino/

你必須要小心,對於在其上放中斷引腳的選擇,因爲在Arduino的參考只能解釋引腳2和3的支持中斷上Uno。

+0

感謝Jean。我將再次檢查關於串行通信的第一部分。對於引腳電平變化中斷,這與引腳2或引腳3上的電平中斷是不同的。我期望在A2和D3上有一個引腳電平變化中斷,以將arduino從睡眠中喚醒。我已經嘗試將其添加到提供的代碼中,並且不提供任何響應。我會繼續玩這個。 – Maus