arduino 按键消抖例子
时间: 2023-08-27 14:04:06 浏览: 52
以下是一个Arduino按键消抖的例子:
```cpp
#include "flexbuttondebounce.h"
TFlexButtonDebounce fbd1(4, LOW); // 生成一个消抖按键实例1,使用4pin口,低电平触发。
TFlexButtonDebounce fbd2(3, HIGH, 50); // 生成另一个消抖按键实例2,使用3pin口,高电平触发,按键超50纳秒才确认,注:默认是20纳秒的。
int st, kt;
void setup() {
st = 0;
kt = 0;
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
}
void loop() {
if (fbd1.isTriggered()) { // 检查按键1是否触发。
st = 1 - st;
}
if (st == 1) {
digitalWrite(9, HIGH);
} else {
digitalWrite(9, LOW);
}
if (fbd2.isTriggered()) { // 检查按键2是否触发。
kt = 1 - kt;
}
if (kt == 1) {
digitalWrite(8, HIGH);
} else {
digitalWrite(8, LOW);
}
}
```
这个例子使用了一个名为`flexbuttondebounce.h`的类库来实现按键消抖。通过声明并调用`TFlexButtonDebounce`类的实例,可以轻松实现按键消抖的效果。在`setup()`函数中,我们初始化了按键和LED的引脚。在`loop()`函数中,我们使用`isTriggered()`函数来检测按键是否被触发,并根据触发状态来控制LED的亮灭。这样可以避免按键抖动导致的误触发问题。
#### 引用[.reference_title]
- *1* *2* [也谈Arduino的按键消抖问题](https://blog.csdn.net/flexitime/article/details/89843439)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [arduino学习笔记6 - 按键实验](https://blog.csdn.net/weixin_39611161/article/details/111746461)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]