這篇文章來源于DevicePlus.com英語網站的翻譯稿。
本文最初發布在deviceplus.jp.網站上,而后被翻譯成英語。
前言
在本文中,您可以了解如何在您的Arduino項目中使用輕觸開關以及其實際工作原理。
我們已經利用數字輸出使數字輸出引腳在HIGH (5V) 和LOW (0V) 兩種狀態之間切換,從而實現了對LED和電機的控制。
另外,您還可以使用數字輸出來確認電子部件的狀態。數字輸出引腳還可以切換為數字輸入引腳。通過這樣切換,可以確認引腳上的電壓,并通過“LOW”和“HIGH”兩種狀態輸入。這些輸入值可用于控制其他電子部件。比如您可能希望在數字輸入為HIGH時使電機運轉,在輸入為LOW時使電機停止。
實際上,利用開關等電子器件,可以使數字輸入引腳的狀態切換為0V或5V。
在本文中,我們將介紹如何使用開關實現數字輸入。
Arduino的數字輸入
使用Arduino Uno,您可以將最初用于數字輸出的引腳D0到D13作為數字輸入引腳使用。可以通過程序切換為數字輸入模式,來確認引腳狀態。
0V輸入為“LOW”,5V輸入為“HIGH”。在程序中,LOW會被讀取為“0”,HIGH會被讀取為“1”。通過確認這些輸入值并執行條件分支等處理,即可控制工作狀態。
下面我們來實際嘗試一下用Arduino進行數字輸入。在這里,我們使用跳線連接引腳5,并確認連接到5V電源和GND時的變化。創建以下程序并將其發送給Arduino:
在第4行中,通過pinMode()指定“INPUT”,以將本次使用的引腳7切換為輸入模式。現在,您可以通過程序確認引腳狀態了。
獲取第11行由digitalRead()指定的引腳的狀態,并將其存儲在value變量中。如果是0V,則存儲為“0”,如果是5V,則存儲為“1”。
當您想確認獲取的狀態時,請使用“串行監視器”。對于Arduino而言,您可以使用用來從電腦傳輸程序的USB數據線將數據從Arduino發送到電腦。使用串行通信可以收發數據。您可以使用串行通信將通過數字輸入獲取的狀態發送到電腦進行確認。
如果您想在程序中使用串行通信,請通過第5行的Serial.begin()進行初始化。此時需要指定通信速度。然后,通過第12行的Serial.println()指定一個值,即可將數據發送到電腦。在本文中,我們使之發送存儲著數字輸入狀態的value變量的內容。
要確認Arduino通過串行通信發送過來的數據時,請使用Arduino IDE中內置的“串行監視器”。要使用串口監視器,請單擊Arduino IDE右上角的“串口監視器圖標”(放大鏡圖標),即可顯示串行監視器畫面。將右下角的通信速度設置為與程序的Serial.begin()中指定的通信速度(本文為9600)相同的值。然后,屏幕上將會顯示0或1。
接下來,將跳線插入引腳7。將另一端連接到 GND,串行監視器上顯示“0”。也就是說,如果數字引腳為0V,您可以看到“0”(LOW)。同樣,當引腳7與5V電源連接時,您可以看到顯示內容變為“1”(HIGH)。
現在我們已經確認,輸入會根據引腳的狀態發生變化。
使用輕觸開關切換輸入
下面,我們嘗試用一個開關使數字輸入引腳在HIGH和LOW狀態之間切換。在本文中,我們使用的是按鈕型“輕觸開關”。
對于輕觸開關而言,當按下上方按鈕時,內部電路接通,進入通電狀態。當松開按鈕時,電路斷開,沒有電流流過。通常,在開關的四個角會配有引腳。如上圖所示配置時,左右引腳之間的間隙起到開關的作用。右側的上下引腳和左側的上下引腳是始終連接的。
如果將輕觸開關的一個引腳與數字引腳相連接,另一引腳連接到GND,則按下開關時內部電路會接通,引腳將直連GND。通過這樣做,您可以判斷只要按下開關,數字輸入就會變為“HIGH”。
但是,當沒有按下開關時,數字引腳將會處于沒有任何連接的狀態。在這種狀態下,施加在引腳上的電壓會變得不穩定。在不穩定狀態下,當用手觸碰引腳或有電池等靠近時,輸入可能會發生變化。
因此,我們在使用開關時會連接一種稱為“上拉電路”或“下拉電路”的電路。這種方法是借助電阻器將數字引腳連接到電源或GND,可以起到穩定輸入狀態的作用。該電路連接到電源端時稱為“上拉電路”,連接到GND端時稱為“下拉電路”。在本文中將以上拉電路為例進行說明,但下拉電路的原理也是一樣的。
使用上拉電路時,在未按下開關的狀態下,開關通過一個電阻器連接到電源。這樣,就與數字引腳連接電源時的狀態相同,輸入會穩定在5V(HIGH)。當按下開關后,數字引腳處于直接連接GND的狀態,因此輸入切換為0V(LOW)。
雖然處于電源與GND連接的狀態,但它們之間夾著一個電阻器(通常為10kΩ左右),因此只會流過少量電流,不存在短路風險。
使用輕觸開關輸入數據
現在,讓我們使用輕觸開關實際輸入數據看看。需要準備好以下電子元器件:
? 輕觸開關
輕觸開關有很多種顏色可供選擇。您可以選擇任何您喜歡的顏色。
? 10kΩ (1/4W)電阻器
用于上拉電路的電阻器。在10kΩ電阻器上印有“棕黑橙金”顏色代碼。
準備好所需組件后,如下圖所示連接它們。將輕觸開關跨越面包板中心的凹槽插入。
接下來,將前述的程序發送給Arduino,以通過串行監視器確認數字引腳7的輸入。可以看到,在未按下開關的狀態下,顯示“1”(HIGH),在按下開關時變為“0”(LOW)。
使用Arduino上拉功能
在Arduino Uno中,數字引腳內置有“上拉”功能,可以通過程序激活該功能。如果使用內部的上拉功能,就不再需要外接電阻器了。您只需連接開關即可,省時省力。
激活上拉功能的程序如下:
您只需在第4行的數字引腳模式設置中指定“INPUT_PULLUP”即可。這樣就能激活內置的上拉功能,從而能夠在未按下按鈕的狀態下穩定HIGH輸入。請注意,Arduino Uno中未內置下拉功能。
按下開關時點亮LED
開關的輸入還可用來控制其他電子元器件。在這里,讓我們利用Arduino中安裝的LED(引腳13),嘗試實現在按下開關時點亮LED,并在松開開關時熄滅LED。所用的電路與前述的僅將開關連接到數字引腳時的電路相同。編寫程序如下:
確認第14行的數字輸入值是否為“1”。在Arduino程序中,您也可以將“1”寫為“HIGH”,將“0”寫為“LOW”。為了便于理解,我們在這里使用“HIGH”和“LOW”。
如果輸入為HIGH(未按下按鈕),則執行第15行,使引腳13切換到LOW,LED熄滅。如果輸入不是HIGH(按下按鈕),則執行第17行,使引腳13切換到HIGH,LED點亮。將程序發送到Arduino并按下輕觸開關,即可確認LED點亮。
我們成功了!現在,您可以在您的Arduino項目中使用開關來執行輸入了。
審核編輯:湯梓紅
-
led
+關注
關注
242文章
23312瀏覽量
661639 -
開關狀態
+關注
關注
0文章
5瀏覽量
9171 -
Arduino
+關注
關注
188文章
6472瀏覽量
187348 -
輕觸開關
+關注
關注
0文章
66瀏覽量
1355
發布評論請先 登錄
相關推薦
評論