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