PulseIn()

從 YFRobotwiki
在2017年9月13日 (三) 11:03由Allblue對話 | 貢獻所做的修訂版本

(差異) ←上個修訂 | 最新修訂 (差異) | 下一修訂→ (差異)
跳到: 導覽搜尋

描述

讀取引腳上的脈衝(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);
}




返回Arduino語法參考列表

更多建議和問題歡迎反饋至 YFRobot論壇