ESP学习笔记-下降沿检测

本文介绍了如何在电子项目中使用INPUT_PULLUP模式进行通断信号检测,避免信号悬空造成的干扰。通过上升沿或下降沿检测,确保代码仅在触发时执行一次,实现防抖动功能。测试结果显示,这种方法有效控制了代码执行的时机。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

如果要检测通断信号,通常会把引脚设置为 INPUT_PULLUP ,即上拉输入模式,避免输入引脚因 悬空 ,造成干扰。

一般来说,如果检测到输入信号,就执行一段代码;但是在实际应用中,如果直接以信号的通断作为触发信号,就会一直处于触发状态,在 loop() 中,代码就会跟随扫描周期,不断地重复执行;如果这样的话,代码的运行效果可能就不是我们所预期的;甚至会导致系统崩溃。

如果,我们只希望在触发的瞬间,代码只执行一次,这样就需要用到 上升沿 或者 下降沿 检测。

测试代码

int InPut = 27;    //定义输入引脚

void setup() 
{
  //启用串口0
  Serial.begin(115200);    

  //设置InPut引脚为上拉输入模式
  pinMode(InPut, INPUT_PULLUP);  

}
 
void loop()
{
  //记录输入点状态
  int buttonState = digitalRead(InPut); 

  //防抖动
  delay(5);
  
  //检测下降沿
  if ( buttonState == HIGH && digitalRead(InPut) == LOW )
  {
    Serial.println("falling edge");
  }

}

测试结果

如上,只有在按钮导通的瞬间,只打印一次 falling edge ,直到再次触发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值