• 2

(已解決)Arduino 輸入腳一直 HIGH

(已解決,更新在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 呢?有人有這方面的經驗或建議查找方向嗎?
2017-12-31 12:00 發佈
文章關鍵字 Arduino
據個人理解,input_pullup有 build in 20k電阻接地,因此那10k電阻應無需用上。
另一方面,可試轉 pin會是否同一狀況,以驗證是否sw問題。另有可能是 library問題,正常都會佔硬件某些resource. 然而沒見到 source code不能預計。

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,持續抓狂中。

kwluk0717 wrote:
據個人理解,input...(恕刪)


今天試試不用外部 pull-low,改用內部 pull-high 看看,會變成一直 LOW 嗎?哈哈。
個人仍然較傾向問題出於軟體機會較大,前文的意思是例如閣下的軟體可能include library 用到timer2 而內碼又有reset timer 的話便有機會出現閣下所言的情況,用keyword search 亦當然不會找到pin 10 輸出等指令。
想確認是否硬件問題,我認為需要整體只用單一指令測試個別port 比較可信。
抓到了抓到了,“當排除所有的不可能,仍然剩下的,即使再怎麼難以置信,必定是真相”。一開始第一個想到的就是按鈕本身,但是電錶量過不按時是開路,按下去是導通,再加上動烙鐵很麻煩,就一直往別的地方看。昨天受不了了動烙鐵吸掉四隻腳的錫,腳夾很緊拆半天拆不掉,乾脆剪掉買個新的裝上,結果一切就正常了,就正常了,就正常了。跑了一晚,今早起來看到整套系統完美運作,內牛滿面啊!

感激提供意見,在 01 要找個能分享了解討論的,還是不多啊。
relay過的45負載有加snubber嗎?
有時開關電源雜訊也會把mcu打到reset

邊境流亡 wrote:
relay過的45...(恕刪)


沒加唉,我想光耦合的繼電器應該夠把電源雜訊隔離開了,45W 不算很大電流,雖然是馬達類負載,偷下懶。主要是如果 MCU reset,系統應該從頭開始,可是我這個沒有這個現象,因為每按一次開關,LED 值會加一,他不是跑回零,是按了不加一,或是突然自己加一,但是系統其他部分仍然正常運作,就是按鈕這一隻輸入在 0 1 間浮動的感覺。

壞消息,才乖了半天,剛才按又不動了,感覺快沒力了。國父革命十次成功,我他媽都革命幾次了,還來。
把負載拿走 單純跑relay試試看還會不會當機
電源雜訊灌進來不一定重頭開始跑

沒玩過阿督諾 不曉得這顆MCU I/O內部怎麼設定
建議你先釐清內部設定到底是pullup還是pulldown
假設內部有pullup你外部又pulldown可能會讓腳上電壓在VIL,VIH搞不清楚
補充一下
推relay的腳是用OD還是PP, PP扇出能力到多少A,OD上拉可以提供的電流又到多少A

還是畫張圖上來大家比較清楚吧
  • 2
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?