//宏定义LED和摁键引脚
#define LED_PIN 2
#define BUTTON_PIN 14
// int led_pin = 2;
// int button_pin = 14;
//定义led逻辑值
int led_logic = 0;
//记录led状态是否被更改的值
bool status = true;
void setup() {
//配置引脚末世
pinMode(LED_PIN, OUTPUT);
//接地给高电平、接电给低电平
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop() {
//按键消抖
if (!digitalRead(BUTTON_PIN)) {
//睡眠10毫秒,如果还是高电平,说明是按下不是抖动
delay(10);
if (!digitalRead(BUTTON_PIN) && status) {
//开灯关灯
led_logic = !led_logic;
digitalWrite(LED_PIN, led_logic);
//状态值更改
status = !status;
}else if (digitalRead(BUTTON_PIN)){
//再次按下给状态值还原
status = true;
}
}
}