[高級輸入/輸出]
說明
讀取引腳上的脈衝(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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。