Re:50歳から始めるArduino UNO-15
Re:50歳から始めるArduino UNO
amazon kindle版を出版しました。
(6)距離センサ-2(超音波センサ)
手元にParallax社のセンサがありましたので、これで、距離を測定してみましょう。このセンサは5V、GND、SIGの3つの端子となっており、信号を発信する端子と受け取る端子がSIGの1つとなっています。このため、SIGで出力した後、すぐに入力に切り替えて入力待ちの状態にします。
また、音速を340m/sとして計算していますので、1μsecで0.34mm進みます。
回路例
<プログラム>
void setup() {
Serial.begin( 9600 );
}
void loop() {
unsigned long i;
float d;
pinMode(13, OUTPUT);//13pinを出力に設定する
digitalWrite(13, LOW);
delayMicroseconds(2);//2μs LOWとする。
digitalWrite(13, HIGH);
delayMicroseconds(5);//5μs HIGHで超音波を発振
pinMode(13, INPUT);//13pinを入力に設定する
i = pulseIn(13, HIGH);//HIGHになるまでの時間を計測する。単位μsec
i=i/2; //片道の時間を測定 音速を340m/sとすると、1μsecで、0.34mm進む
d=float(i)*0.34;
Serial.print(d);
Serial.println("mm");
delay(500);
}
100mmのときはほぼ100mmの出力となっています。
50mmのときもほぼ50mmの出力となっています。
10mmのときは、35mmの出力となっています。発信器側と受信機側の中心の距離が25mm程ですので、10mmの距離のときはこれを考慮して35mm程度の出力となるのではないかと考えられます。50mm程度から2000mm程度の計測が計測できる範囲ではないでしょうか。