Arduino入門:時間関連の関数

ArduinoのSketch(スケッチ)で使用できる時間関連の関数について解説します。

millis

millisは、Arduinoボードがプログラムの実行を開始してから、現在までの経過時間をミリ秒単位で返します。

Creative Commons Attribution-ShareAlike 3.0 License (CC BY-SA 3.0)
Arduino Reference:millis()” by Arduino Team, used under CC BY-SA 3.0/ easy labo made some changes and comments to the original

上の例では、プログラムがスタートしてからの時間を出力しています。 なお、millisの戻り値は、約50日間でオーバーフローしゼロに戻ります。

micros

microsは、Arduinoボードがプログラムの実行を開始してから、現在までの経過時間をマイクロ秒単位で返します。

Creative Commons Attribution-ShareAlike 3.0 License (CC BY-SA 3.0)
Arduino Reference:micros()” by Arduino Team, used under CC BY-SA 3.0/ easy labo made some changes and comments to the original

上の例では、プログラムがスタートしてからの時間を出力しています。 なお、microsの戻り値は、約70分間でオーバーフローしゼロに戻ります。16MHz動作のArduinoボードでは、micorsの分解能は4マイクロ秒で、戻り値は4の倍数となります。8MHzのボード(LilyPad等)では、8マイクロ秒の分解能となります。

delay

delayは、プログラムを指定時間だけ停止します。設定パラメータは、次の通りです。

ms: 一時停止する時間 (unsigned long)。単位はミリ秒

このパラメータはunsigned long型ですが、32767より大きい整数を指定するときは、値の後ろにULを付け加えます。例 delay(60000UL);

Creative Commons Attribution-ShareAlike 3.0 License (CC BY-SA 3.0)
Arduino Reference:delay()” by Arduino Team, used under CC BY-SA 3.0/ easy labo made some changes and comments to the original

なお、Arduinoボードは、delay中は動作が停止していますが、割り込み処理は有効で、いくつかの処理は同時に実行できます。

delayMicroseconds

delayMicrosecondsは、プログラムを指定時間だけ一時停止します。設定パラメータは、次の通りです。

us: 一時停止する時間。単位はマイクロ秒。

現在の仕様では、16383マイクロ秒以内の値を指定したとき、正確に動作しますが、この仕様は将来のリリースで変更される予定です。ですので、数千マイクロ秒を超える場合はdelay関数を使用する事を推奨します。

Creative Commons Attribution-ShareAlike 3.0 License (CC BY-SA 3.0)
Arduino Reference:delayMicroseconds()” by Arduino Team, used under CC BY-SA 3.0/ easy labo made some changes and comments to the original

上の例では、1周期が100マイクロ秒、デューティー50%のパルスを発生させています。

→その他のArduino関連情報

Sponsored Link