Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 手把手教你智能硬件開發(五) 開關按鈕

手把手教你智能硬件開發(五) 開關按鈕

編輯:關於Android編程

第5節 按鈕開關

對於硬件的控制,我們常用硬件開關來控制Arduino開發板上其他外接硬件的通斷邏輯。比如,一盞LED燈,硬件上最好有個開關,按一下開關,就讓LED燈亮,再按一下開關,就讓LED燈關閉。

開關的外形有多種式樣,四根引腳、三根引腳。不論是三引腳還是四引腳,原理都是相同的。如果選擇四引腳開關,開發者就得自己搭建一個簡單的電路;三引腳的按鈕開關是對四引腳開關的集成封裝,簡化了外圍電路的設計,很適合對硬件缺乏深入認識的軟件開發者。

\

這裡我們選用使用最方便的三引腳按鈕開關。我們安豆雜貨鋪提供的按鈕開關,就是這樣的三引腳開關。

5.1 硬件連接

三引腳按鈕開關的引腳對應如下,

\ 含義 引腳位置 連接 開發板引腳 控制 S <–> D10 VCC 電源 <–> 5V 接地 GND <–> GND

在實際的使用當中,按鈕開關經常連接到擴展板上。例如這裡將按鈕開關連接到10組擴展口上,

含義 引腳位置 連接 擴展板引腳 控制 S <–> 10組S VCC 電源 <–> 10組V 接地 GND <–> 10組G \

5.2 控制代碼

首先我們初始化引腳,按鈕使用的是D10,就要初始化D10為輸入引腳,

int BUTTON_PIN = 10;

void setup() {
    //D10是作為輸入使用的引腳
    pinMode(BUTTON_PIN, INPUT);
    Serial.begin(9600);
}

每按一次按鈕,都會觸發按下和松開兩個響應,也就是說,按鈕按下後會自動彈起,不會保持被按下的狀態,

當按下開關按鈕的時候,S引腳會變成LOW電平; 當松開開關按鈕的時候,S引腳會變成HIGH電平;

所以當出現了這兩個變化的時候,才能判斷按鈕被按下並抬起了一次。

采用digitalRead()讀取按鈕對應引腳的電平,判斷它當前是否被按下,

//初始情況下,按鈕是沒有按下的,所以是HIGH電平
int oldButtonState = HIGH;

void loop() {

    //讀取開關引腳的電平,判斷當前是否被按下
    int buttonState = digitalRead(BUTTON_PIN);

    //當前被按下(LOW),之前沒有被按下(HIGH),
    //說明使用者按下了按鈕
    if(buttonState == LOW && oldButtonState == HIGH)
    {
        Serial.println("button press down");
        oldButtonState = buttonState;
    }

    //當前沒有被按下(HIGH),之前被按下(LOW),
    //說明使用者松開了按鈕
    if(buttonState == HIGH && oldButtonState == LOW)
    {
        Serial.println("button press up");
        oldButtonState = buttonState;
    }
}

5.3 查看結果

把以上代碼部署到設備上,打開串口調試窗口,按下並松開開關,可以看到類似如下輸出信息,

\
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved