PulseIn()

来自YFRobotwiki
跳转至: 导航搜索

描述

读取引脚上的脉冲(HIGH或LOW)。 例如,如果值为HIGH,则pulseIn()等待引脚变为高电平,开始定时,然后等待引脚变为低电平并停止时序。 返回脉冲的长度(以微秒为单位),如果在超时内没有接收到完整脉冲,则返回0。

这个功能的时间是经验确定的,可能会在较短的脉冲中显示错误。 适用于从10微秒到3分钟长度的脉冲。 还请注意,如果该功能被调用时该引脚已经为高电平,则在引脚开始计数之前,它将等待引脚变为低电平,然后将其置为高电平。 只有当中断被激活时,才能使用该程序。 此外,以较短的间隔获得最高分辨率。


语法

pulseIn(pin, value) 
pulseIn(pin, value, timeout)


参数

  • pin:要读取脉冲的引脚编号。(INT)
  • value:要读取的脉冲类型:HIGH或LOW。(INT)
  • timeout(可选):等待脉冲完成的微秒数:如果超时内没有接收到完整的脉冲,则该函数返回0。 默认值为1秒(unsigned long)。


返回

脉冲长度(以微秒为单位),如果在超时之前没有完成脉冲,则为0(unsigned long)


示例

int pin = 7;
unsigned long duration;

void setup()
{
  pinMode(pin, INPUT);
}

void loop()
{
  duration = pulseIn(pin, HIGH);
}




返回Arduino语法参考列表

更多建议和问题欢迎反馈至 YFRobot论坛