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); }
更多建议和问题欢迎反馈至 YFRobot论坛