📅  最后修改于: 2023-12-03 15:29:27.651000             🧑  作者: Mango
在 Arduino 中,可以使用下降沿作为触发器来响应外部事件。下降沿是在信号从高电平变为低电平时触发的事件。
const int buttonPin = 2; // 板子上按钮所连接的引脚
int oldButtonState = HIGH; // 初始按钮状态
int newButtonState; // 新的按钮状态
void setup() {
pinMode(buttonPin, INPUT_PULLUP); // 配置按钮引脚为输入模式并启用内部上拉电阻
Serial.begin(9600); // 初始化串口通信
}
void loop() {
newButtonState = digitalRead(buttonPin); // 读取新的按钮状态
if (newButtonState == LOW && oldButtonState == HIGH) { // 如果检测到下降沿
Serial.println("Button pressed!"); // 发送消息到串口
}
oldButtonState = newButtonState; // 更新旧的按钮状态
}
在上面的示例中,我们使用 digitalRead
函数读取按钮状态。如果检测到下降沿,在串口中输出消息。我们还将旧的按钮状态存储在一个变量中,以便在下一个循环中与新状态进行比较。
首先,我们定义了一个称为 buttonPin
的整数类型常量,表示板子上按钮所连接的引脚。
const int buttonPin = 2;
接下来,我们定义了两个整数类型变量 - oldButtonState
和 newButtonState
,oldButtonState
用来存储前一个按钮状态,而 newButtonState
用来存储新的按钮状态。
int oldButtonState = HIGH;
int newButtonState;
在 setup
函数中,我们将按钮引脚设置为输入模式并启用内部上拉电阻,这样就可以通过读取按钮状态来检测下降沿了。我们还初始化了串口通信,以便在检测到下降沿时输出消息。
pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(9600);
在 loop
函数的开始部分,我们使用 digitalRead
函数读取按钮状态。
newButtonState = digitalRead(buttonPin);
然后,我们检测新旧按钮状态之间的变化是否会形成下降沿,如果是,则在串口中输出消息。
if (newButtonState == LOW && oldButtonState == HIGH) {
Serial.println("Button pressed!");
}
最后,我们更新旧按钮状态的值。
oldButtonState = newButtonState;