見出し画像

超音波センサー

超音波センサーで距離を測るのがカッコよさそうなので試しました。

今華電子さんのこれです。70NTD(約270円)でした。

左側Tが送信スピーカー、 右側Rが受信マイク。

画像1

裏はこんな具合

画像2

説明はスイッチサイエンスさんのこちら

から、データシートは

https://cdn.sparkfun.com/datasheets/Sensors/Proximity/HCSR04.pdf

を、サンプルスケッチは

を参考にしました。要はTrigピンに10マイクロ秒のパルスを出力すると内部で8周期分の超音波が発射される。
 pulseIn(EchoPin, HIGH);
という関数で待てば、
「信号が反射されて帰ってくるまでにかかった時間 t」がマイクロ秒単位で得られるということらしい。音速は「340m/s=0.034cm/μs」として、対象物までの距離をdとすれば、(マイクとスピーカーの幅からくる誤差は無視して)およそ2d =0.034*t
つまり、d=0.017t

これでスケッチ書いてみました。

#define TrigPin 6
#define EchoPin 8

unsigned long t;
float d;

void setup() {
 pinMode(TrigPin, OUTPUT);
 pinMode(EchoPin, INPUT);
 digitalWrite(TrigPin, LOW);
 delay(1000);
 Serial.begin(9600);
}

void loop() {
 t = measure();
 d = 0.017 * t;
 Serial.println(d,1);

 delay(1000);
}

unsigned long measure(){
 digitalWrite(TrigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(TrigPin, LOW);

 return pulseIn(EchoPin, HIGH);
}

これで、反射物までの距離を変えて、測定できていることを確認しました。

画像3

 

いいなと思ったら応援しよう!