超音波距離センサ [ハード]
超音波を発して、帰ってきた音を感知して、その時間が計測できるセンサー。
裏側はこんな感じ。
この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×温度
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);
}
**********************************************************************
超音波なので、距離を測る対象物は、ある程度の硬さが必要で、
服やカーテンなど柔らかいものだと音が反射せずに計測できなくなくなる。
裏側はこんな感じ。
この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×温度
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);
}
**********************************************************************
超音波なので、距離を測る対象物は、ある程度の硬さが必要で、
服やカーテンなど柔らかいものだと音が反射せずに計測できなくなくなる。
2015-09-23 08:44
nice!(0)
コメント(0)
トラックバック(0)
コメント 0