Arduino 中的 pulseIn() 和 pulseInLong()
如果引脚上有脉冲输入,并且需要测量脉冲持续时间,则可以使用 **pulseIn()** 函数。
语法
语法如下:
pulseIn(pin, value)
其中 **pin** 是您希望测量脉冲的引脚编号。**value** 是脉冲的电平。它可以是 HIGH 或 LOW。
例如,如果将值设置为 HIGH,则意味着一旦引脚上的电压从 LOW 变为 HIGH,时间测量将开始。当引脚上的电压从 HIGH 变为 LOW 时,它将停止。
**pin** 返回以微秒为单位的脉冲时间。
您还可以使用函数的另一种形式,该形式包含第三个参数:**timeout**
pulseIn(pin, value, timeout)
超时指示等待脉冲启动的微秒数。如果未指定此参数,则默认超时为 1 秒。换句话说,如果在调用 **pulseIn** 函数后,脉冲在 1 秒(或超时)内没有启动,则此函数将放弃并返回 0。
如果需要测量很长的脉冲,并且在代码中启用了中断,则可以使用 **pulseInLong()** 代替 **pulseIn**。语法类似,超时参数在这里也是可选的。此函数可用于测量长度从 10 微秒到 3 分钟的脉冲,并且仅在启用中断时才能使用。对于较短的脉冲,它容易出错,并且对于较长的脉冲,它具有最高的精度。
示例
下面给出一个示例实现:
int pulsePin = 6;
unsigned long pulseDuration;
void setup() {
Serial.begin(9600);
pinMode(pulsePin, INPUT);
}
void loop() {
pulseDuration = pulseIn(pulsePin, HIGH);
Serial.println(pulseDuration);
}**pulseInLong** 的语法保持不变;只有函数名称从 **pulseIn()** 更改为 **pulseInLong()**。
广告
数据结构
网络
关系型数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP