📜  arduino 下降沿 - C++ (1)

📅  最后修改于: 2023-12-03 15:29:27.651000             🧑  作者: Mango

Arduino 下降沿 - C++

在 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;
    
  • 接下来,我们定义了两个整数类型变量 - oldButtonStatenewButtonStateoldButtonState 用来存储前一个按钮状态,而 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;