Arduino實現按鈕功能

實現按鈕功能

1、代碼

volatile byte LED;//定義LED燈
volatile boolean LastState;//定義狀態
volatile byte SW;//定義按鈕
volatile boolean Toggle;//電平狀態,高和低
volatile boolean b1;//定義記錄按鈕狀態
volatile boolean b2;//定義記錄按鈕狀態
volatile int click;//定義點擊次數

int mixly_digitalRead(uint8_t pin) {
  pinMode(pin, INPUT);
  return digitalRead(pin);
}

void setup(){
  LED = 11;//賦值LED接11號數字管腳
  SW = 8;//按鈕接8號數字管腳
  LastState = true;
  Toggle = true;
  b1 = true;
  b2 = true;
  click = 0;
  Serial.begin(9600);
  LastState = mixly_digitalRead(SW);//獲取按鈕初始狀態,電平爲高1
  Serial.println(LastState);
}

void loop(){
  b1 = mixly_digitalRead(SW);//獲取當前按鈕狀態
  Serial.println(b1);
  if (b1 != LastState) {//判斷當前按鈕狀態和最後的狀態是否相等
    delay(20);//去抖動,判斷按鈕是否真的被按下
    b2 = mixly_digitalRead(SW);
    if (b2 == b1) {
      LastState = b1;
      click = click + 1;//按鈕被按下,計數加1
    }

  }
  if (click == 2) {//判斷按下兩次
    click = 0;
    Toggle = !Toggle;
    pinMode(LED, OUTPUT);//控制LED的11號數字管腳電平高低
    digitalWrite(LED,Toggle);

  }

}

2、效果圖
在這裏插入圖片描述在這裏插入圖片描述
3、相關鏈接:Github

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章