按鈕或開(kāi)關(guān)連接電路中的兩個(gè)開(kāi)路端子。當(dāng)按下連接到引腳8的按鈕開(kāi)關(guān)時(shí),此示例打開(kāi)引腳2上的LED。
在電子邏輯電路中使用下拉電阻,以確保在外部器件斷開(kāi)連接或處于高阻抗?fàn)顟B(tài)時(shí),Arduino的輸入信號(hào)達(dá)到預(yù)期的邏輯電平。雖然沒(méi)有任何東西連接到輸入引腳,但這并不意味著它是一個(gè)邏輯0。下拉電阻連接在地面和器件上相應(yīng)的引腳之間。
下圖顯示了數(shù)字電路中下拉電阻的示例。在電源電壓和微控制器引腳之間連接了一個(gè)按鈕開(kāi)關(guān)。在這樣的電路中,當(dāng)開(kāi)關(guān)閉合時(shí),微控制器輸入處于邏輯高值;但是當(dāng)開(kāi)關(guān)打開(kāi)時(shí),下拉電阻將輸入電壓下拉到接地(邏輯零值),防止輸入處于未定義狀態(tài)。
下拉電阻的電阻必須大于邏輯電路的阻抗,否則可能會(huì)使電壓下降太多,而無(wú)論開(kāi)關(guān)的位置如何,引腳處的輸入電壓將保持在恒定的邏輯低值。
你將需要以下組件:
按照電路圖進(jìn)行連接,如下圖所示。
在計(jì)算機(jī)上打開(kāi)Arduino IDE軟件。使用Arduino語(yǔ)言進(jìn)行編碼控制你的電路。通過(guò)單擊“New”打開(kāi)一個(gè)新的草圖文件。
// constants won't change. They're used here to // set pin numbers: const int buttonPin = 8; // the number of the pushbutton pin const int ledPin = 2; // 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); } }
當(dāng)開(kāi)關(guān)打開(kāi)時(shí)(按鈕未被按下),按鈕的兩個(gè)端子之間沒(méi)有連接,因此引腳接地(通過(guò)下拉電阻),我們讀取低電平。當(dāng)開(kāi)關(guān)閉合時(shí)(按鈕被按下),它在其兩個(gè)端子之間建立連接,將引腳連接到5伏,這樣我們讀出高電平。
按下按鈕時(shí)LED亮燈,松開(kāi)按鈕時(shí)LED熄燈。
更多建議: