[高级输入/输出]
说明
读取引脚上的脉冲(HIGH
或 LOW
)。例如,如果 value
为 HIGH
,则 pulseIn()
等待引脚从 LOW
变为 HIGH
,开始计时,然后等待引脚变为 LOW
并停止计时。返回脉冲的长度(以微秒为单位),如果在超时时间内没有收到完整的脉冲,则放弃并返回 0。
此函数的时间已根据经验确定,并且可能会在较长的脉冲中显示错误。适用于长度为 10 微秒到 3 分钟的脉冲。
Note
|
如果使用可选超时,代码将执行得更快。 |
用法
pulseIn(pin, value)
pulseIn(pin, value, timeout)
参数
pin
:要读取脉冲的 Arduino 引脚的编号。允许的数据类型:int
.
value
:要读取的脉冲类型:或者HIGH或者LOW.允许的数据类型:int
.
timeout
(可选):等待脉冲开始的微秒数;默认为一秒。允许的数据类型:unsigned long
.
返回
脉冲的长度(以微秒为单位)或 0 如果在超时之前没有开始脉冲。数据类型:unsigned long
。
示例代码
该示例在引脚 7 上打印脉冲的持续时间。
int pin = 7;
unsigned long duration;
void setup() {
Serial.begin(9600);
pinMode(pin, INPUT);
}
void loop() {
duration = pulseIn(pin, HIGH);
Serial.println(duration);
}
相关用法
- Arduino pulseInLong()用法及代码示例
- Arduino pinMode()用法及代码示例
- Arduino pow()用法及代码示例
- Arduino long用法及代码示例
- Arduino Arduino_EMBRYO_2 - setLengthXY()用法及代码示例
- Arduino ~用法及代码示例
- Arduino ArduinoBLE - bleDevice.advertisedServiceUuidCount()用法及代码示例
- Arduino const用法及代码示例
- Arduino Ethernet - server.begin()用法及代码示例
- Arduino ArduinoBLE - BLEService()用法及代码示例
- Arduino digitalWrite()用法及代码示例
- Arduino ArduinoBLE - bleCharacteristic.subscribe()用法及代码示例
- Arduino Servo - attach()用法及代码示例
- Arduino write()用法及代码示例
- Arduino Arduino_LSM9DS1 - readGyroscope()用法及代码示例
- Arduino ArduinoSound - FFTAnalyzer.input()用法及代码示例
- Arduino MKRGSM - gprs.attachGPRS()用法及代码示例
- Arduino WiFiNINA - WiFi.config()用法及代码示例
- Arduino MKRGSM - sms.read()用法及代码示例
- Arduino MKRNB - getCurrentCarrier()用法及代码示例
- Arduino Scheduler - Scheduler.startLoop()用法及代码示例
- Arduino Arduino_LSM9DS1 - magneticFieldAvailable()用法及代码示例
- Arduino MKRWAN - available()用法及代码示例
- Arduino ArduinoBLE - BLE.poll()用法及代码示例
- Arduino ArduinoBLE - bleCharacteristic.hasDescriptor()用法及代码示例
注:本文由纯净天空筛选整理自arduino.cc大神的英文原创作品 pulseIn()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。