|
Hi,大家好!前兩次呢,我們一起學(xué)習(xí)了按鍵開(kāi)關(guān)的基本使用。在每一次的電路連接過(guò)程中,我們每次都需要額外連接一個(gè)10k歐姆大小的電阻。話(huà)說(shuō)如果只是想學(xué)習(xí)一下按鍵開(kāi)關(guān),就不得不需要額外再連接一個(gè)電阻,總覺(jué)得有點(diǎn)繁瑣,能不能去掉這個(gè)電阻呢?可喜可賀!答案是肯定的!
好!廢話(huà)不多啰嗦!讓我們直奔主題,看看是如何去掉那個(gè)電阻的!
首先,還是要我們做準(zhǔn)備一下。
硬件方面
arduino-no-resistor-parts.jpg (120.61 KB, 下載次數(shù): 223)
下載附件
2015-12-19 22:10 上傳
圖片來(lái)源:Arduino電路配件
具體包括如下:
- Arduino UNO電路板(1塊)
- 面包板(1塊)
- 按鍵開(kāi)關(guān)(1個(gè))
- 面包線(xiàn)(2根)
看!這次果然拋棄了電阻,還省了一根兒面包線(xiàn),只用了兩根。測(cè)試用的LED神燈,還是用Arduino UNO電路板自帶的那盞。關(guān)于Arduino UNO電路板自帶的這盞LED神燈,這里就不再次贅述了。印象模糊的同學(xué),可以翻看前兩次的實(shí)驗(yàn)記錄。
軟件方面Arduino官方提供的IDE。
連接電路
arduino-no-resistor.jpg (97.73 KB, 下載次數(shù): 201)
下載附件
2015-12-19 22:10 上傳
圖片來(lái)源:Arduino連接開(kāi)關(guān)按鍵電路示意圖
對(duì)于類(lèi)似電路的連接,都是輕車(chē)熟路了吧?!這次更是簡(jiǎn)單,只剩下了一個(gè)開(kāi)關(guān)按鍵,真的是連電阻都沒(méi)有啦!下面進(jìn)行最后一步!
添加幾行代碼首先還是讓我們新建一個(gè)項(xiàng)目窗口。
arduino-ide-new.jpg (70.98 KB, 下載次數(shù): 201)
下載附件
2015-12-19 22:10 上傳
圖片來(lái)源:Arduino官方IDE
- // 對(duì)Arduino電路板或相關(guān)狀態(tài)進(jìn)行初始化方法
- void setup() {
- // 開(kāi)啟串行通信,并設(shè)置其頻率為9600。
- // 如果沒(méi)有特別要求,此數(shù)值一般都為9600。
- Serial.begin(9600);
- // 配置2號(hào)針腳為輸入狀態(tài),
- // 并設(shè)置使用內(nèi)部上拉電阻。
- pinMode(2, INPUT_PULLUP);
- // 定義LED輸入針腳號(hào)為13號(hào)針腳。
- // 注:此處我們使用的LED神燈是Arduino UNO電路板自帶,
- // 此神燈對(duì)應(yīng)的針腳號(hào)默認(rèn)為13,此數(shù)值不得隨意更改,
- // 所以這里定義的數(shù)值13是為了和默認(rèn)值相對(duì)應(yīng)。
- pinMode(13, OUTPUT);
- }
- // 系統(tǒng)調(diào)用,無(wú)限循環(huán)方法
- void loop() {
- // 讀取2號(hào)針腳上的輸入信號(hào)的數(shù)值
- int sensorVal = digitalRead(2);
- // 為了更直觀的看到2號(hào)針腳輸入的信號(hào)值,
- // 將獲取到的數(shù)值打印到串行調(diào)試窗口,方便調(diào)試。
- Serial.println(sensorVal);
- // 如果獲取到的數(shù)值為HIGH(數(shù)值大小等于1),
- // 則向13號(hào)針腳發(fā)送LOW信號(hào)(數(shù)值大小等于0),熄滅LED神燈,
- // 反之則發(fā)送HIGH信號(hào)(數(shù)值大小等于1),點(diǎn)亮LED神燈。
- if (sensorVal == HIGH) {
- digitalWrite(13, LOW);
- } else {
- digitalWrite(13, HIGH);
- }
- }
復(fù)制代碼
使用這個(gè)內(nèi)部電阻還有一點(diǎn)需要注意,那就是它會(huì)將按鍵的輸入狀態(tài)取反。也就是說(shuō),當(dāng)按鍵斷開(kāi)的時(shí)候,輸入為HIGH,也就是數(shù)值為1,按鍵按下的時(shí)候,輸入為L(zhǎng)OW,也就是數(shù)值為0。這也是為什么我們會(huì)在代碼的第70行進(jìn)行一次if判斷,并將輸入狀態(tài)重新調(diào)整過(guò)來(lái)的原因。
arduino-menu.jpg (9.87 KB, 下載次數(shù): 226)
下載附件
2015-12-19 22:10 上傳
圖片來(lái)源:Arduino官方IDE的文件編輯菜單選項(xiàng)
OK!點(diǎn)擊一下上圖中標(biāo)有向右指向的箭頭圖標(biāo),將編寫(xiě)好的代碼燒入Arduino UNO電路板。如果一切順利,此時(shí)就可以通過(guò)按下按鍵,讓LED神燈點(diǎn)亮,松開(kāi)按鍵,LED神燈熄滅。同時(shí),你還可以點(diǎn)擊上圖中最右邊的放大鏡圖標(biāo),打開(kāi)串口調(diào)試窗口,查看實(shí)時(shí)的按鍵輸出狀態(tài)。
arduino-serial.jpg (68.29 KB, 下載次數(shù): 234)
下載附件
2015-12-19 22:10 上傳
圖片來(lái)源:Arduino串口調(diào)試窗口
每次按下按鍵或松開(kāi)按鍵,都可以從串口調(diào)試窗口中實(shí)時(shí)看到按鍵的輸入數(shù)值。
總結(jié)通過(guò)這次學(xué)習(xí),我們知道了如何調(diào)用Arduino UNO自帶的內(nèi)部上拉電阻,還了解到此上拉電阻會(huì)按鍵開(kāi)關(guān)的輸入狀態(tài)進(jìn)行取反。通過(guò)使用內(nèi)部的上拉電阻,我們?cè)谑褂瞄_(kāi)關(guān)按鍵的時(shí)候可以少連接一個(gè)外部電阻,將電路的連接變的更簡(jiǎn)單。但相應(yīng)的代價(jià)是,要將獲取到的數(shù)值進(jìn)行取反。
下期預(yù)告經(jīng)過(guò)這幾次對(duì)按鍵開(kāi)關(guān)的學(xué)習(xí),我們對(duì)按鍵開(kāi)關(guān)的使用已經(jīng)有了初步的掌握。下一次,我們將過(guò)去幾次的學(xué)習(xí)融合到一起,做一個(gè)小實(shí)驗(yàn),在用按鍵開(kāi)關(guān)控制LED神燈的同時(shí),我們將試著記錄按鍵開(kāi)關(guān)的總按下次數(shù)!
ohcoder的系列精彩Arduino教程:
Arduino教程-初識(shí)Arduino(包含本教程目錄):http://www.torrancerestoration.com/bbs/dpj-41334-1.html
Arduino教程-開(kāi)篇:http://www.torrancerestoration.com/bbs/dpj-41335-1.html
Arduino教程-點(diǎn)亮LED神燈:http://www.torrancerestoration.com/bbs/dpj-41336-1.html
Arduino教程-讓LED神燈閃爍:http://www.torrancerestoration.com/bbs/dpj-41337-1.html
Arduino教程-讓LED神燈亮度漸變:http://www.torrancerestoration.com/bbs/dpj-41338-1.html
Arduino教程-獲取輸入數(shù)字信號(hào):http://www.torrancerestoration.com/bbs/dpj-41339-1.html
Arduino教程-獲取輸入模擬信號(hào):http://www.torrancerestoration.com/bbs/dpj-41340-1.html
Arduino教程-另一種時(shí)間延遲:http://www.torrancerestoration.com/bbs/dpj-41331-1.html
Arduino教程-按鍵開(kāi)關(guān):http://www.torrancerestoration.com/bbs/dpj-41341-1.html
Arduino教程-停止抖動(dòng)!:http://www.torrancerestoration.com/bbs/dpj-41333-1.html
Arduino教程-拋棄外部電阻!:http://www.torrancerestoration.com/bbs/dpj-41332-1.html
Arduino教程-用按鍵開(kāi)關(guān)計(jì)數(shù):http://www.torrancerestoration.com/bbs/dpj-41330-1.html
………后續(xù)持續(xù)更新中請(qǐng)打開(kāi):http://www.torrancerestoration.com/bbs/dpj-41334-1.html
|
|