Hi,大家好!今天我們正式學習一個新的元器件,它就是按鍵開關!說是正式學習,其實之前我們早就已經接觸過,而且還正確的連接過它的電路呢!有印象么?在之前的獲取輸入數字信號那一節!這一次與它相遇,我們要正式學習如何使用它控制一盞神燈!
既然之前我們已經接觸過,想必這次學起來要簡單的多啦!
好!廢話不多說,先看一下這次都需要做哪些準備。
硬件方面
arduino-button-parts.jpg (100.4 KB, 下載次數: 319)
下載附件
2015-12-19 22:01 上傳
圖片來源:Arduino電路配件
具體包括如下:
- Arduino UNO電路板(1塊)
- 面包板(1塊)
- 10k電阻(1個)
- 按鍵開關(1個)
- 面包線(3根)
咦?怎么沒發現硬件準備中的LED神燈?問的好!這次偷偷的告訴你一個小秘密,其實Arduino UNO電路板自身就帶有一盞神燈,這盞神燈對應的針腳號為13。仔細看上圖中Arduino UNO電路板,在電路板中上方的位置,差不多正對GND標示和數字13的正下方,有一個標號為L的白色長方形,沒錯!那就是這盞神燈。這盞神燈默認的信號輸入針腳為數字信號13號針腳。
因為這次我們的學習重點是按鍵,所以為了簡化電路的連接,我們默認就使用Arduino UNO電路板自帶的那盞神燈啦!
好,下面是軟件的準備!
軟件方面Arduino官方提供的IDE。不必多說!
連接電路
arduino-read-bottom.jpg (121.94 KB, 下載次數: 320)
下載附件
2015-12-19 22:01 上傳
圖片來源:Arduino連接開關按鍵電路示意圖
電路的連接,在之前的獲取輸入數字信號那節我們已經做過,這里除了需要注意Arduino UNO電路板自帶的那盞神燈以外,沒有新的內容。
下面是最后一步!
添加幾行代碼最后一個環節,就是讓我們添加幾行驅動硬件的代碼。
首先,新建一個項目窗口。
arduino-ide-new.jpg (70.98 KB, 下載次數: 301)
下載附件
2015-12-19 22:01 上傳
圖片來源:Arduino官方IDE
- // 這里的輸入和輸出是針對Arduino電路板而言
- // 定義按鍵輸入針腳號為2號針腳
- const int buttonPin = 2;
- // 定義LED輸入針腳號為13號針腳
- // 注:此處我們使用的LED神燈是Arduino UNO電路板自帶,
- // 此神燈對應的針腳號默認為13,此數值不得隨意更改,
- // 所以這里定義的數值13是為了和默認值相對應。
- const int ledPin = 13;
- // 定義按鍵狀態變量初始值為0
- int buttonState = 0;
- // 對Arduino電路板或相關狀態進行初始化方法
- void setup() {
- // 設置ledPin端口為輸出端口
- pinMode(ledPin, OUTPUT);
- // 設置buttonPin端口為輸入端口
- pinMode(buttonPin, INPUT);
- }
- // 系統調用,無限循環方法
- void loop() {
- // 讀取按鍵狀態
- buttonState = digitalRead(buttonPin);
- // 檢查按鍵狀態,
- // 如果為HIGH,
- // 則點亮LED神燈,
- // 否則熄滅LED神燈。
- if (buttonState == HIGH) {
- // 點亮LED神燈
- digitalWrite(ledPin, HIGH);
- } else {
- // 熄滅LED神燈
- digitalWrite(ledPin, LOW);
- }
- }
復制代碼
嗯,全部代碼就是這些!所調用的方法我們應該全都已經見過,這里并沒有新的面孔出現。可能只有一點是新的,那就是我們這次使用的LED神燈,是Arduino UNO電路板自帶的,此盞神燈默認對應的針腳號為13,是不能隨意更改的,所以我們要想控制此神燈,需要向13號針腳輸入數字信號,這就是為什么上面我們定義LED針腳號的時候,數字為13的原因。也就是說,只有向13號針腳輸入信號,才可以控制這盞神燈的亮和滅。
圖片來源:Arduino官方IDE的文件編輯菜單選項
點擊上圖中標有向右指向的箭頭圖標,將代碼燒入Arduino UNO電路板。成功之后,試試看點擊開關按鍵,此時能否點亮和熄滅電路板上的那盞神燈!如果燒入失敗,請檢查是代碼編譯錯誤,還是將代碼燒入電路板的過程中出現錯誤?如果是代碼錯誤,請認真核對代碼,如果是燒入代碼時出現的錯誤,可以點擊工具欄中的Tools,查看Port的選項,是否選中的是usbmodem連接模式。
總結通過這次學習,我們正式的了解如何使用按鍵進行控制。順便還了解了一盞Arduino UNO自身就有的LED神燈,對Arduino UNO電路板又增進了一些認識。這次編寫的代碼中,沒有出現新的面孔,電路方面所涉及到的只有數字信號,總而言之呢,可以看作是對我們之前所學進行了鞏固。
下期預告雖然通過這次學習,我們知道了如何用按鍵開關控制其他電器元件,比如LED神燈。由于電路的一些固有特性,美中不足,此時按鍵開關還有一些小問題。下一次,我們將修復這個問題,完善按鈕開關,讓其達到完美的狀態!
ohcoder的系列精彩Arduino教程:
Arduino教程-初識Arduino(包含本教程目錄):http://www.zg4o1577.cn/bbs/dpj-41334-1.html
Arduino教程-開篇:http://www.zg4o1577.cn/bbs/dpj-41335-1.html
Arduino教程-點亮LED神燈:http://www.zg4o1577.cn/bbs/dpj-41336-1.html
Arduino教程-讓LED神燈閃爍:http://www.zg4o1577.cn/bbs/dpj-41337-1.html
Arduino教程-讓LED神燈亮度漸變:http://www.zg4o1577.cn/bbs/dpj-41338-1.html
Arduino教程-獲取輸入數字信號:http://www.zg4o1577.cn/bbs/dpj-41339-1.html
Arduino教程-獲取輸入模擬信號:http://www.zg4o1577.cn/bbs/dpj-41340-1.html
Arduino教程-另一種時間延遲:http://www.zg4o1577.cn/bbs/dpj-41331-1.html
Arduino教程-按鍵開關:http://www.zg4o1577.cn/bbs/dpj-41341-1.html
Arduino教程-停止抖動!:http://www.zg4o1577.cn/bbs/dpj-41333-1.html
Arduino教程-拋棄外部電阻!:http://www.zg4o1577.cn/bbs/dpj-41332-1.html
Arduino教程-用按鍵開關計數:http://www.zg4o1577.cn/bbs/dpj-41330-1.html
………后續持續更新中請打開:http://www.zg4o1577.cn/bbs/dpj-41334-1.html
|