SSブログ

超音波距離センサ [ハード]

超音波を発して、帰ってきた音を感知して、その時間が計測できるセンサー。
HC-SR04_2.JPG
裏側はこんな感じ。
HC-SR04_3.JPG
このHC-SR04の仕様。

電源電圧:5V
電流:15mA、待機で2mA以下
センサ角度:30度
検出距離:2cm-4m

VCCとGNDに5Vの電圧をかけて、
Trigを一度LOWにして、10マイクロ秒以上Highにしてから、LOWにすると、
40kHzの超音波を8回出す。
この後EchoがHighになり、出した音波が帰ってくるとLOWになる。
つまり、このEchoがHighになっている時間を計測すると、
音が出て、対象物に反射して帰ってきた時間がわかる。

この時間から距離を計算するのは、音の速度を340m/sとして、

距離=時間/2×340

音の速度は、気温によって変わるので、正確に計算したければ、気温を測って、

音の速度=331.5+0.6×温度
HC-SR04_1.JPG
VCC←5V
Trig←8
Echo←9
GND←GND

と4本つなげば使えるようになる。
**********************************************************************
int Trig = 8;
int Echo = 9;
int Duration;
float Distance;

void setup() {
Serial.begin(9600);
Serial.println("START");
pinMode(Trig,OUTPUT);
pinMode(Echo,INPUT);
}

void loop() {
digitalWrite(Trig,LOW);
delayMicroseconds(1);
digitalWrite(Trig,HIGH);
delayMicroseconds(1);
digitalWrite(Trig,LOW);

Duration = pulseIn(Echo,HIGH);
if (Duration>0) {
Distance = Duration*0.017; // Duration/2*340*100/1000000;
Serial.print(Duration);
Serial.print(" us ");
Serial.print(Distance);
Serial.println(" cm");
}else{
Serial.println("Error");
pinMode(Echo,OUTPUT);
digitalWrite(Echo,LOW);
pinMode(Echo,INPUT);
}
delay(500);
}
**********************************************************************
超音波なので、距離を測る対象物は、ある程度の硬さが必要で、
服やカーテンなど柔らかいものだと音が反射せずに計測できなくなくなる。
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

いろいろ覚えることも多く、知りえた知識を貯めておこうと思います。先はまるで見えないですけどね。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。