pulseIn()
名称
pulseIn()
説明
ピンからパルス(HIGHもしくはLOW)を読み取る。たとえば、valueがHIGHのとき、pulseIn()は、ピンがLOWからHIGHになるのを待ち、時間計測を開始する。その後、ピンがLOWになるのを待ち、時間計測を終了する。パルスが入力されていた時間をマイクロ秒単位で返却する。指定したタイムアウト時間内にパルスが開始されないとタイムアウトし、0を返却する。
この関数のタイミングは経験的に決められているので、長いパルスに対してはエラーとなる。パルスの長さが10マイクロ秒から3分の間で動作する。
オプションのタイムアウトを利用するとコードは速くなる。
書式
指定したピンでのパルス長を測定するには、以下の関数を使う。
pulseIn(pin, value)pulseIn(pin, value, timeout)
C言語シグネチャ(avr)
unsigned long pulseIn(uint8_t pin, uint8_t state);
unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout));
引数
この関数は以下の引数を受け付ける。
| pin | パルスを読み取りたいピン番号。データ型: int。 |
| value | 読みだすパルスの型。HIGHもしくはLOW。データ型: int。 |
| timeout | パルスが完了するまでのタイムアウト時間(マイクロ秒)。デフォルトは1秒。データ型: unsigned long。 |
戻り値
パルスが発生していた時間(マイクロ秒)。タイムアウトが発生した時は0。データ型: unsigned long。
コード例
以下の例では、7番ピンのパルスの時間をマイクロ秒単位で表示する。
|
|
参照
オリジナルのページ
https://docs.arduino.cc/language-reference/en/functions/advanced-io/pulseIn/
実装の解析
最終更新日
July 12, 2026