NOBのArduino日記!

NOBのArduino日記!

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

Arduino IDE(delayMicroseconds関数の使い方)

delayMicroseconds関数
 delayMicroseconds関数は指定した時間(μs)プログラムを止めます。
 Arduino IDEで使用するdelay関数の使い方は以下の通りです。
 試しにこのプログラムをArduino UNOで実行すると、13ピンのLEDが蛍の様に不規則に明るさが変化します。 

void setup() {                         //一回だけ実行する
   pinMode(13, OUTPUT);        //LEDを接続した13番ピンを出力用に設定する
}
void loop() {                          //{}内を無限ループで実行する
   int i=random (16383);         //iに0~16383の間で発生させた乱数を代入する。
   digitalWrite(13, HIGH);        //LEDが接続された13番ピンをHIGH(5V)にする
   delayMicroseconds(i);          //iミリ秒LEDを点灯した状態で止める
   digitalWrite(13, LOW);         //LEDが接続された13番ピンをLOW(0V)にする
   delayMicroseconds(16383-i);//16383-iミリ秒LEDを消灯した状態で止める
}
イメージ 1
図1:プログラムの内容

delayMicroseconds(ms)パラメータ
μs:一時停止する時間 (変数の型:unsigned int)をマイクロ秒単位で指定します。 

補足:
①3~16383μs以内の値を指定したときに正確に動作します。
②基本的に数千マイクロ秒を超える場合はdelay関数を使用します。
Arduino0018から、この関数は割り込みを停止しません。

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