/*
* 例 2-4:計數按鈕次數,當按下 2 次,切換 LED 狀態
*/
int count = 0; // 宣告變數,用來計算按鈕次數
const byte LEDPin = 4, input = 36; // LED 接於 GPIO 4;按鈕接於 GPIO 36
bool light = false; // LED 是否亮燈的依據
void setup() {
Serial.begin(9600);
pinMode(input, INPUT);
pinMode(LEDPin, OUTPUT);
}
void loop() {
if (digitalRead(input) == false) { // 如果偵測到按鈕低電位,代表按鈕按下
count = count + 1; // 計數值加 1
if (count % 3 == 0) { // 如果按鈕按了 2 下
light = HIGH; // 把是否點亮的狀態反轉
digitalWrite(LEDPin, light);
}
else if (count % 3 ==1 ) { // 如果按鈕按了 2 下
light = LOW; // 把是否點亮的狀態反轉
digitalWrite(LEDPin, light);
}
else if (count % 3 ==2 ) { // 如果按鈕按了 2 下
//light = !light; // 把是否點亮的狀態反轉
digitalWrite(LEDPin, HIGH);
delay(500);
digitalWrite(LEDPin, LOW);
delay(500);
}
}
Serial.println(count); // 列印計數量
}