NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Arduino IDE(pulseIn関数の使い方)

■pulseIn関数
 pulseIn関数は指定したピンに入力されるパルスを検出します。
 たとえば、パルスの種類(value)をHIGHに指定した場合、pulseIn関数は入力がHIGHに変わると同時に時間の計測を始め、またLOWに戻ったら、そこまでの時間(つまりパルスの長さ)をマイクロ秒単位で返します。
 タイムアウトを指定した場合は、その時間を超えた時点で0を返します。 
この関数で計測可能な時間は、経験上、10マイクロ秒から3分です。あまりに長いパルスに対してはエラーとなる可能性があります。 

■使用例
 Arduino IDEで使用するpulseIn関数の使い方は以下の通りです。
 このプログラムはパルスがHIGHになっている時間(duration)を調べます。 
 試しにこのプログラムをArduino UNOに書き込み、3番ピンにLOW→HIGH→LOW信号を入力すると、HIGH信号であった時間がマイクロ秒単位で測定され、シリアルモニタ上に測定結果が表示されます。

void setup() {                      //一回だけ実行
  pinMode(3, INPUT);  //3番ピンを入力用に設定する
  Serial.begin( 9600 );
}

void loop() {
  unsigned int interval = 0;
  interval = pulseIn( 3, HIGH, 29412);
  Serial.println( interval);
}
イメージ 1
図1:プログラム例

 ■「pulseIn(pin, value, timeout)」の構文
 pin      : パルスを入力するピンの番号 
 value     : 測定するパルスの種類。HIGHまたはLOW 
 timeout(省略可) : タイムアウト迄の時間(単位:μ秒)デフォルトは1秒 (unsigned long) 
 戻り値    :パルスの長さ(マイクロ秒)
※パルスがスタートする前にタイムアウトとなった場合は0 (unsigned long) 

 

イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【ArduinoIDE reference】目次に戻る