时间:2024-6-6 作者:老大夫 分类: ARDUINO
https://www.bilibili.com/video/BV1RM4y1a7J5?p=12
主要学习了按键的 读取方法 digitalRead(button_pin)、按键消除抖动,就是延时20毫秒左右再读取一下,相同电位则视为按下。
// 定义 LED 与 按键引脚
int led_pin = 7;
int button_pin = 6;
// 定义 LED 逻辑值
int led_logic = 0;
// 判断 LED 的状态是否改变过
bool status = false;
void setup() {
pinMode(led_pin, OUTPUT);
pinMode(button_pin, INPUT_PULLUP);
}
void loop() {
// 按键消抖
if (digitalRead(button_pin)) {
// 睡眠 10ms,如果依然为高电平,说明抖动已消失。
delay(10);
if (digitalRead(button_pin) && !status) {
led_logic = !led_logic;
digitalWrite(led_pin, led_logic);
// led 的状态发生了变化,即使我持续按着按键,LED 的状态也不应该改变。
status = !status;
}else if (!digitalRead(button_pin)) {
status = false;
}
}
}
推荐阅读:
esp32-wroom-驱动CP2102
点亮LED
LED流水灯
PWM实现呼吸灯效果
ADC数模转换
宏定义
使用platform IO 编译arduino时报错:collect2.exe: error: ld returned 1 exit status *** [.pio\build\uno\firmware.elf] Error 1
行动消除疑虑