[3] 通過(guò)按鍵對(duì)Arduino輸入信號(hào)

這一次,我們將學(xué)習(xí)怎樣用按鍵對(duì)Arduino輸入信號(hào)從而控制LED燈的亮滅。我們將設(shè)置兩個(gè)按鈕,按第一個(gè)按鈕會(huì)點(diǎn)亮LED燈,按另外一個(gè)按鈕則會(huì)熄滅LED燈。

需要的材料:

  • Arduino 編程軟件
  • Arduino UNO卡
  • 面包板
  • 10 x 不同顏色的連接線(xiàn)
  • 1 x LED燈
  • 1 x 220-1000歐的電阻
  • 2 x 按鈕

第一步 連接電路

從下圖的模擬電路可以看出,和第一期的電路相比,我們加入了兩個(gè)按鈕在A(yíng)rduino卡的第9號(hào)和第8號(hào)接口,從而對(duì)其輸入信號(hào)。

下圖是按鍵的結(jié)構(gòu)圖,可以看出在按鍵的四個(gè)接口中,A-D和B-C是連接在一起的。

所以在連接按鍵的時(shí)候,注意觀(guān)察按鈕的底部,防止出現(xiàn)同時(shí)連接在了AD或者BC兩個(gè)接口上。

在按鈕按下時(shí)會(huì)對(duì)Arduino發(fā)出一個(gè)LOW的信號(hào),我們就通過(guò)這個(gè)信號(hào)來(lái)控制LED的亮滅。

下圖是完整的電路展示,在連接第一個(gè)按鈕時(shí),先從UNO卡的9號(hào)接口出,連接按鈕的一端,再將按鈕的另一端連接在面包板的負(fù)極部分就行了。同理,連接8號(hào)接口的按鈕。

第二步 編輯程序

在連接好了電路之后,我們就開(kāi)始編寫(xiě)代碼了。
首先我們要在setup()函數(shù)中設(shè)置需要的3個(gè)接口, 分別是13(LED), 9(第一個(gè)按鈕),8(第二個(gè)按鈕)。

  pinMode(13, OUTPUT);
  pinMode(9, INPUT_PULLUP);  // 按鈕設(shè)置為input的狀態(tài)
  pinMode(8, INPUT_PULLUP);  // 按鈕設(shè)置為input的狀態(tài)

然后通過(guò)測(cè)試8號(hào)和9號(hào)接口的信號(hào)來(lái)確定是點(diǎn)亮或者熄滅LED。

if (digitalRead(buttonApin) == LOW) // 按鈕在按下后是LOW的狀態(tài)
  {
    digitalWrite(ledPin, HIGH);
  }
  if (digitalRead(buttonBpin) == LOW) // 按鈕在按下后是LOW的狀態(tài)
  {
    digitalWrite(ledPin, LOW);
  }

完整代碼:

void setup() 
{
  pinMode(13, OUTPUT);
  pinMode(9, INPUT_PULLUP);  // 按鈕設(shè)置為input的狀態(tài)
  pinMode(8, INPUT_PULLUP);  // 按鈕設(shè)置為input的狀態(tài)
}

void loop() 
{
  if (digitalRead(buttonApin) == LOW) // 按鈕在按下后是LOW的狀態(tài)
  {
    digitalWrite(ledPin, HIGH);
  }
  if (digitalRead(buttonBpin) == LOW) // 按鈕在按下后是LOW的狀態(tài)
  {
    digitalWrite(ledPin, LOW);
  }
}

第三步 上傳程序

按下第一個(gè)按鈕點(diǎn)亮LED,按下第二個(gè)按鈕則熄滅LED。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容