pulseIn()

描述

读取 pin 脚上的脉冲 (高或低电位) 持续时间;举个例子,如果输入值是 HIGH,pulseIn() 会等 pin 脚上的电位变成 HIGH 之后开始计时,等到又变回 LOW 才停止;之后会回传脉冲的持续时间,单位是微秒;假如在指定的时间内没有出现任何脉冲或是脉冲长度太长,则会放弃读取并回传 0。

指定时间的长短是取决于经验的,通常在长时间的脉冲下较容易发生错误,脉冲的测量长度介于 10 毫秒到 3 分钟之间。

语法


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

参数

pin: 用来读取脉冲的 pin 脚 (int)
value: 读取的脉冲型态,HIGHLOW (int)
timeout (非必要): 设定一段时间来等待脉冲开始,预设是一秒 (unsigned long)

回传

脉冲的时间长度 (单位是微秒) 。如果在超时前没有读到脉冲的话则是回传 0 (unsigned long)。

范例

int pin = 7;
unsigned long duration;

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

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

语法参考主页面

本页由热血青年 LBU 译自英文版。

The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.