// 配置I/O引脚
#define LED_PIN 15
#define BUTTON_PIN 12
void LED_Off() {
// 定义引脚电平
digitalWrite(LED_PIN, HIGH);
}
void LED_On() {
digitalWrite(LED_PIN, LOW);
}
bool button_up = true;
// 记录按钮按下的状态 true代表按钮松开
bool led_stat = false;
// 记录LED当前点亮状态 false 表示未点亮
void setup() {
// 接口、引脚配置,设备初始化等需要在设备启动时执行一次的基础设置项
Serial.begin(115200);
// 设置串口通信速率(波特率)
pinMode(LED_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
// 配置引脚输入/输出
LED_Off();
}
void loop() {
// 持续执行的函数、语句、逻辑判断
if (digitalRead(BUTTON_PIN) == LOW) {
// 按钮按下
if (button_up) {
// 判断是否为抬起状态
led_stat = !led_stat;
// 反转LED状态
button_up = false;
}
}
if (digitalRead(BUTTON_PIN) == HIGH) {
// 按钮抬起
button_up = true;
}
if (led_stat) //控制LED亮灭
LED_On();
else
LED_Off();
delay(10);
}