説明
指定したマイクロ秒プログラムの動作を止めます。
1秒は1,000,000マイクロ秒となりますが、関数で正確に停止できるのは最大値は16383の指定までです。これ以上はdelayを使います。
| 書き方 | delayMicroseconds(マイクロ秒) |
| 戻り値 | なし |
| 引数 | (unsigned int)マイクロ秒 |
プログラム例
int outPin = 8; // digital pin 8
void setup() {
pinMode(outPin, OUTPUT); // sets the digital pin as output
}
void loop() {
digitalWrite(outPin, HIGH); // sets the pin on
delayMicroseconds(50); // pauses for 50 microseconds
digitalWrite(outPin, LOW); // sets the pin off
delayMicroseconds(50); // pauses for 50 microseconds
}
クムクムロボットロボットでの使用
delayMicrosecondsは、弊社のクムクムロボットの超音波距離センサー(HC-SR04)の制御で使います。
#define Trig 13
#define Echo A3
int Duration;
float Distance;
void setup() {
Serial.begin(9600);
while (!Serial) { ; } //Leonardoの場合にはこの部分が必要
pinMode(Trig,OUTPUT);
pinMode(Echo,INPUT);
}
void loop() {
digitalWrite(Trig,LOW); //まずLowにする
delayMicroseconds(1); //1μ秒まつ
digitalWrite(Trig,HIGH); //トリガー信号をあげる
delayMicroseconds(11); //10μ秒だが念のため11μ秒HIGHを出す
digitalWrite(Trig,LOW); //信号を落とす
Duration = pulseIn(Echo,HIGH);//パルスがHIGHの間の時間を測る
if (Duration>0) {
//パルスの秒から距離を計算する
Distance = Duration/2;
Distance = Distance*340*100/1000000;
Serial.println(Distance);//シリアルに書き出してみる
}
delay(1000);
}
