PulseIn()
從 YFRobotwiki
描述
讀取引腳上的脈衝(HIGH或LOW)。 例如,如果值為HIGH,則pulseIn()等待引腳變為高電平,開始定時,然後等待引腳變為低電平並停止時序。 返回脈衝的長度(以微秒為單位),如果在超時內沒有接收到完整脈衝,則返回0。
這個功能的時間是經驗確定的,可能會在較短的脈衝中顯示錯誤。 適用於從10微秒到3分鐘長度的脈衝。 還請注意,如果該功能被調用時該引腳已經為高電平,則在引腳開始計數之前,它將等待引腳變為低電平,然後將其置為高電平。 只有當中斷被激活時,才能使用該程序。 此外,以較短的間隔獲得最高分辨率。
語法
pulseIn(pin, value) pulseIn(pin, value, timeout)
參數
- pin:要讀取脈衝的引腳編號。(INT)
- value:要讀取的脈衝類型:HIGH或LOW。(INT)
- timeout(可選):等待脈衝完成的微秒數:如果超時內沒有接收到完整的脈衝,則該函數返回0。 默認值為1秒(unsigned long)。
返回
脈衝長度(以微秒為單位),如果在超時之前沒有完成脈衝,則為0(unsigned long)
示例
int pin = 7; unsigned long duration; void setup() { pinMode(pin, INPUT); } void loop() { duration = pulseIn(pin, HIGH); }
更多建議和問題歡迎反饋至 YFRobot論壇