伊莉討論區

標題: (已解決)(Arduino)用按鈕控制七段顯示器數字,卡在數字不會更動 [打印本頁]

作者: a7813195    時間: 2017-4-27 08:25 PM     標題: (已解決)(Arduino)用按鈕控制七段顯示器數字,卡在數字不會更動

提示: 作者被禁止或刪除 內容自動屏蔽
作者: chevylin0802    時間: 2017-4-28 09:22 AM

本帖最後由 chevylin0802 於 2017-4-28 09:23 AM 編輯

你的按鈕的線路圖是怎麼接的?
因為按鈕的接線方式會影響到你的偵測電位會不會變化
一般有兩種接線方式
按鈕按下的時候電路導通時如果要讓輸入電壓為+5V的話
就必需要在輸入腳位也加一顆電阻接地
而按鈕則是一端接+5V另一端接到輸入腳位上

按鈕按下的時候電路導通時如果要讓輸入電壓為0V的時候
那麼就必需要從+5V接一個電阻接到輸入腳位上
而按鈕則是一端接輸入腳位而另一端接地

如果你完全沒有接電阻的話
那麼你的輸入腳位的電壓是不正確的
當然不管怎麼按都不會有反應



作者: a7813195    時間: 2017-4-28 12:20 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: chevylin0802    時間: 2017-4-28 12:42 PM

本帖最後由 chevylin0802 於 2017-4-28 01:53 PM 編輯
a7813195 發表於 2017-4-28 12:20 PM
我有試著用arduino內建的Button範例去執行
是可以執行的但我用這個執行後是失敗的

果然是Button接錯了

電阻接到Button的那一條線
要直接分線出來到第10腳
不是從Button的另一端
Button的另一端要接到+5V
而不是去接到第10腳

因為你Button沒有電壓供給
所以第10腳的腳位永遠都是0V
不管你Button有沒有按都一樣是0V
你應該準備一個三用電表
轉到直流電壓檔
然後去量第10腳跟地的電位差
就很容易發現你的接法
電壓根本不會變化

Arduino畢竟是提供I/O端口出來的板子
I/O端口要怎麼接怎麼用都需要再外接線路
所以基本的三用電腦仍然要有
只有電路正確了
你軟體才有辦法正確的運作


作者: a7813195    時間: 2017-4-28 03:37 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: chevylin0802    時間: 2017-4-28 03:53 PM

a7813195 發表於 2017-4-28 03:37 PM
那麼我另一端應該接到5V
電阻接地那邊不動他
我要再拉一條線到10腳嗎?

電阻有一頭是接到地
另一頭跟按鈕的接點相接
這個地方還要拉一條給第10腳
而按鈕的另一頭則是接到+5V上
這樣子你按鈕放開的時候
第10腳的電壓是零
按鈕按下的時候
第10腳的電壓是+5V


作者: a7813195    時間: 2017-5-1 12:01 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: chevylin0802    時間: 2017-5-1 12:37 PM

本帖最後由 chevylin0802 於 2017-5-2 10:47 AM 編輯
a7813195 發表於 2017-5-1 12:01 PM
我想到是不是Arduino有個上拉電阻的指令
這樣是否就能解決拉到5V的問題
之前似乎有看到這樣接 不過好像是 ...

那要看硬體的規格才行
許多MCU的GPIO確實有的有上拉電阻的設定
但未必每一個都有
像Arduino板子
我是可以給你很肯定確定的說
雖然可以直接透過pinMode()來做
我完全不建議你靠軟體設定來做
原因是它的升壓電阻的值隨著不同的AVR而定
有的是20k~50k歐姆
有的則是50k~150k歐姆
接按鈕的話還無所謂
但如果去接一些感測器的話
恐怕就會傷腦筋了
並不是每一種感測器的升壓電阻都能正常工作
因為到了實務上工作經驗的時候
硬體設計的人未必會鳥你
除非你自己也下去做硬體線路
不過我想應該不太可能
畢竟那未必是你的專業
但即使是如此
做MCU內部的軔體仍然要懂硬體才行
三用電表也是基本的工具
有的時候必要的狀況還是需要量示波器
尤其是I2C線路到底有沒有輸出以及它的時脈到底正不正確都是要靠量測的
切記一點
千萬別以為硬體設計的人一次就可以幫你把線路設計正確
往往都需要軔體的人去幫他們檢查線路
所有的輸出入的接腳到底有沒有訊號
本來就是在做軔體的人在負責的




作者: a7813195    時間: 2017-5-4 12:07 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: chevylin0802    時間: 2017-5-4 12:22 PM

a7813195 發表於 2017-5-4 12:07 PM
是呀
我用上拉電阻目前的確是可以運作了
但像您說的可能之後會面臨這些問題

你現在做的程式
灌到板子上的那個部份就是叫做軔體
雖然它不是指泛稱的軔體(因為bootloader已經是機器碼且已經下載進去了)
一般來講單晶片的系統設計通常也都是軔體跟硬體一起打包成一體在做
也就是說單晶片從電路設計一直到程式設計一般來講都是同一個人完成

三用電表也只是初淺的必備工具而已
當你用到PWM輸出或PWM監側或I2C介面的時候
還是只能靠示波器
當然不需要非常高精度的專業儀器
目前也有學生可以自己購窄的示波器學習套件
其實已經非常足夠了
因為Arduino可以使用的頻率本來就不高
示波器20MHz的極限已經足夠使用了
雖然它是USB介面
要使用到電腦來當示波器的螢幕操作
不過這種套件非常便宜
不到1500台幣就可以買得到了





歡迎光臨 伊莉討論區 (http://a401.file-static.com/) Powered by Discuz!