ESP32 端口电平变化检测代码示例
以下是 ESP32 中检测端口电平发生变化的代码示例:
int inputPin = 23; // 定义输入引脚
int currentState = 0; // 当前状态
int previousState = 0; // 上一状态
void setup() {
pinMode(inputPin, INPUT_PULLUP); // 设置输入引脚为上拉输入模式
Serial.begin(9600); // 初始化串口通信
}
void loop() {
currentState = digitalRead(inputPin); // 读取输入引脚电平
delay(10); // 延时 10 毫秒,避免抖动
if (currentState != previousState) { // 判断当前状态是否与上一状态不同
Serial.println('Input pin state changed'); // 输出提示信息
if (currentState == LOW) { // 如果当前状态为低电平
Serial.println('Input pin is LOW'); // 输出提示信息
} else { // 如果当前状态为高电平
Serial.println('Input pin is HIGH'); // 输出提示信息
}
previousState = currentState; // 更新上一状态
}
}
注:在上述代码中,使用了 INPUT_PULLUP 模式,需要将端口接到 GND 才会触发状态变化。如果需要将端口接到 VCC 才会触发状态变化,可以使用 INPUT_PULLDOWN 模式。另外,需要注意避免抖动问题,可以通过加入适当的延时来解决。
原文地址: https://www.cveoy.top/t/topic/oX1S 著作权归作者所有。请勿转载和采集!