[3] 通過按鍵對Arduino輸入信號

這一次,我們將學習怎樣用按鍵對Arduino輸入信號從而控制LED燈的亮滅。我們將設置兩個按鈕,按第一個按鈕會點亮LED燈,按另外一個按鈕則會熄滅LED燈。

需要的材料:

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

第一步 連接電路

從下圖的模擬電路可以看出,和第一期的電路相比,我們加入了兩個按鈕在Arduino卡的第9號和第8號接口,從而對其輸入信號。

下圖是按鍵的結構圖,可以看出在按鍵的四個接口中,A-D和B-C是連接在一起的。

所以在連接按鍵的時候,注意觀察按鈕的底部,防止出現同時連接在了AD或者BC兩個接口上。

在按鈕按下時會對Arduino發出一個LOW的信號,我們就通過這個信號來控制LED的亮滅。

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

第二步 編輯程序

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

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

然后通過測試8號和9號接口的信號來確定是點亮或者熄滅LED。

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

完整代碼:

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

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

第三步 上傳程序

按下第一個按鈕點亮LED,按下第二個按鈕則熄滅LED。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容