(已解決,更新在16樓)
這個 bug 已經困擾我三天了解不了,有人能提供建議嗎?
我用 Arduino UNO 做了一個應用,其中 digital 第 10腳設定為按鍵開關的 input。這個按鍵我一端接 5V,一端接 10腳,同時並聯 10K電阻接地。使用時一開始這個按鍵的功能是正常的,但是數十秒以後他就無反應,查下去原因就是讀到的一直是 HIGH。此同時,其他的 I/O 腳位功能都正常,包括五隻腳位輸出到 4511控制七段 LED,三隻腳位接磁簧開關輸入(內部 pull-high),二隻腳位輸出控制繼電器。
詭異的就是一開始都正常,要跑一下以後就一直 HIGH。HIGH 了以後即使按 reset 按鈕,他還是一直 HIGH。如果拔掉電源,冷機一下,再重新插電,又是一開始正常,跑一下以後完蛋。換一片 UNO 結果一樣,量按鍵的兩端也是開路。
有什麼可能原因會造成 pull-low 的腳位跑一下以後變成讀到 high 呢?有人有這方面的經驗或建議查找方向嗎?
kwluk0717 wrote:
據個人理解,input...(恕刪)
謝謝回覆。我試過將該輸入由 Pin10 改到 Pin0,結果一樣。因為執行的前數十秒是正常的,那 main loop 已經跑無數圈了,且用 key word 搜過全部程式,只有對該 pin 做 read,沒有做 write,pinMode,digitalRead,digitalWrite 都是 const int
指定的腳位, 沒有讀寫錯誤腳的機會,基本排除是軟體的問題,比較傾向是硬體問題。
目前感覺出問題好像都是在繼電器動作以後,繼電器是推動交流 45W 負載,不過負載沒接上也一樣,而且 HIGH 了以後就持續 HIGH。這個繼電器模組是號稱光耦合的,理論上負載端不應該影響到邏輯線路端,再查找看看。會是電流供應不足嗎?Vin 是 12V 1A,5V 供應二位繼電器模組,4511,一個七段顯示器 470歐姆限流,一個光敏電阻模組,一個按鍵開關串 10K 歐姆,三個磁簧開開內部 pull-high,加上 UNO 本身。這樣負載會太大嗎?就算負載太大,只有 Pin10 有事,其他輸出入都正常,怪哉。HIGH 的時候量他電壓是 4V,不是 5V,其他輸出入腳仍保持 5V。10K歐姆 pull-low 量到 4V,持續抓狂中。
內文搜尋

X