/////////////////////////////////////////////////////////////////////////////////////////
// /*
// 電子元件: 輕觸開關(tact switch)(下拉電阻)
// 功能 : 開關控制燈泡(現實會有彈跳(Bounce)現象!!!)
// */
// #define buttonPin 21
// #define LedPin 13
// void setup() {
// // 啟動序列埠通訊
// Serial.begin(115200);
// // 腳位模式
// pinMode(buttonPin, INPUT);
// pinMode(LedPin, OUTPUT);
// }
// void loop() {
// int buttonState = digitalRead(buttonPin); // 讀取開關狀態
// if(buttonState == HIGH){
// Serial.println("按下");
// digitalWrite(LedPin, HIGH);
// }else{
// Serial.println("放開");
// digitalWrite(LedPin, LOW);
// }
// delay(100); // 防止機械彈跳
// }
/////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
/*
電子元件: 輕觸開關(tact switch)(下拉電阻)
功能 : 開關各種狀態
*/
#define buttonPin 21
#define LedPin 13
bool buttonUp = true; // 開關是否彈起
int buttonState = LOW; // 紀錄開關狀態
bool LedState = false; //LED狀態
void setup() {
// 啟動序列埠通訊
Serial.begin(115200);
// 腳位模式
pinMode(buttonPin, INPUT);
pinMode(LedPin, OUTPUT);
}
void loop() {
buttonState = digitalRead(buttonPin); // 讀取開關狀態
if(buttonState == HIGH && buttonUp == true){
Serial.println("按下");
LedState = !LedState;
digitalWrite(LedPin, LedState);
buttonUp = false;
}else if(buttonState == HIGH && buttonUp == false){
Serial.println("持續不放");
}else if(buttonState == LOW && buttonUp == false){
Serial.println("放開");
buttonUp = true;
}else if(buttonState == LOW && buttonUp == true){
Serial.println("持續放開");
}
delay(100); // 防止機械彈跳
}
/////////////////////////////////////////////////////////////////////////////////////////