Ultrasonic คือ โมดูลที่ทำหน้าที่วัดระยะห่างระหว่างวัตถุวับเซนเซอร์ โดยที่ HC-SR04 จะมีตัวปล่อยคลื่นอัลตราโซนิกออกไป เมื่อกระทบกับวัตถุจะสท้อนกลับมาที่ตัวรับสัญญาณ โดยระยะทางที่ได้จะคำนวณจาก
s = (vt)/2
s ระยะทางระหว่างวัตถุกับเซนเซอร์(m)
v ความเร็วเสียงในอากาศ(ใช้ค่าประมาณ 340m/s)
t เวลาไปกลับระหว่างวัตถุกับเซอเซอร์(s)
คุณสมบัติ
Working Voltage DC 5V
Working Current 15mA
Max Range 4m.
Min Range 2cm
Measuring Angle 15 degree
Size 45*20*15mm
ตัวอย่างการต่อเข้ากับ Arduino
VCC >> 5V
GND >> GND
Echo >> pin 7
Trig >> pin 8
ตัวอย่าง Arduino Code
/* This
sketch originates from Virtualmix: http://goo.gl/kJ8Gl
Has
been modified by Winkle ink here:
http://winkleink.blogspot.com.au/2012/05/arduino-hc-sr04-ultrasonic-distance.html
And modified further by ScottC here:
http://arduinobasics.blogspot.com.au/2012/11/arduinobasics-hc-sr04-ultrasonic-sensor.html
on 10 Nov 2012. */
#define
echoPin 7 //
Echo Pin
#define
trigPin 8 //
Trigger Pin
#define
LEDPin 13 //
Onboard LED
int maximumRange = 200; // Maximum range needed
int minimumRange = 0; // Minimum range needed
long duration, distance; // Duration used to calculate
distance
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LEDPin, OUTPUT); // Use LED indicator (if required)
}
void loop() {
/*
The following trigPin/echoPin cycle is used to determine the
distance of the nearest object by bouncing
soundwaves off of it. */
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
//Calculate the distance (in cm) based on the speed of sound.
distance = duration/58.2;
if
(distance >= maximumRange || distance <= minimumRange){
/* Send a negative number to computer and Turn LED ON
to indicate "out of range" */
Serial.println("-1");
digitalWrite(LEDPin, HIGH);
}
else {
/* Send the distance to the computer using Serial protocol, and
turn LED OFF to indicate successful reading.
*/
Serial.println(distance);
digitalWrite(LEDPin, LOW);
}
//Delay 50ms before next reading.
delay(50);
}
data sheet : http://www.micropik.com/PDF/HCSR04.pdf
credit by
No comments:
Post a Comment