按鍵是重要的人機交互的工具,可以通過按鍵將數據輸入給計算機(此處為Arduino),讓Arduino按照人所想的方式工作,或者輸入Arduino的一些工作參數。LED燈可以作為程序調試過程中的指示燈,讓調試者清楚地知道程序現在運行到哪一步,從而可以很快的找出程序的問題所在。
在上一節的學習筆記《Arduino UNO實驗板設計》中,我們帶著大家學會了如何使用Protues仿真軟件構建出軟件Arduino的實驗板,并在軟件Arduino UNO實驗板上驗證了閃爍燈的例子,下面我們接著第一節的學習筆記,繼續下面的學習,讓LED燈接受我們的控制,像平時我們打開和關閉房間的節能燈一樣方便。
首先,我們需要打開上次的Arduino UNO實驗板,如圖1所示。從下圖中,我們可以看到Arduino UNO的核心ATmega328P單片機,綠色LED燈LED-GREEN,串口通訊接口COMPIM,這個構成了Arduino的最小系統。
圖1 Arduino UNO實驗板
下面我們要在Arduino UNO實驗板上添加按鍵,在元器件選擇框中輸入“BUTTON”,如圖2所示。選擇上面一個按鍵,并點擊OK將其添加至元器件欄中。
圖2 "BUTTON"按鍵選擇
從元器件欄中將按鍵放置到Arduino UNO實驗板的合適位置,這里我們選擇數字口8,所以放置在其附近,并放置一個10KΩ的電阻,如圖3所示。將按鍵的一端連接至數字口8,一端連接至+5V電源端,電阻的一端連接至數字口8,一端接至低端,構成一個下拉電阻【注】,連接之后的圖如圖4所示。
【注】下拉電阻的一端接至低端,因而叫做下拉電阻,即將電路節點的電平向低方向(地)拉。下拉電阻的主要作用是在電路驅動器(此處為按鍵)斷開時給線路(節點)以一個固定的低電平。【文獻1】

圖3 在Arduino UNO實驗板上放置按鍵和電阻
圖4 連接好按鍵和電阻的Arduino UNO實驗板
最后,還需要完成Arduino軟件設計,驗證我們的設計是否可行。先打開ArduinoIDE自帶的例子,如圖5所示。
圖5 打開Arduino IDE的BUTTON示例
我們要對Arduino IDE自帶“BUTTON”例子進行修改,將const int buttonPin = 2;更改為const int buttonPin = 8;因為我們的按鍵連接在數字口8上面,更改之后的程序如下所示。
// set pin numbers:
const int buttonPin = 8; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}
void loop(){
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}
將更改之后的程序,編譯通過之后,在Protues仿真環境中單擊ATmega328P單片機,將Arduino IDE生成的HEX文件調入到Arduino UNO實驗板中運行。
當按鍵斷開時,LED熄滅,如圖6所示;當按鍵閉合時,LED點亮。如圖7所示。
圖6 按鍵斷開時,LED熄滅
圖7 按鍵閉合時,LED點亮
我們對上面的設計進行一些更改,將按鍵和10KΩ電阻的GND和+5V交換位置,點擊GND彈出更改框為圖8所示。將GND改為+5V,+5V改為GND,實驗板即變為圖9所示。10KΩ的電阻也由下拉電阻變為上拉電阻。【注】
【注】上拉電阻就是將不確定的信號通過一個電阻鉗位在高電平,電阻同時起限流作用。【文獻2】
圖8 更改電源端與地端
圖9 更改之后的實驗板
當我們進行仿真時,出現了與前面相反的效果:當按鍵斷開時,LED點亮,如圖10所示;當按鍵閉合時,LED熄滅,如圖10所示。這就是上拉電阻與下拉電阻的作用。
圖10 當按鍵斷開時,LED點亮
圖11 當按鍵閉合時,LED熄滅
參考文獻:
文獻1:http://baike.baidu.com/view/1546676.htm
文獻2:http://baike.baidu.com/view/1106477.htm