Saturday, September 19, 2015

Ultrasonic Sensor(HC-SR04)



       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);
}





credit by

No comments:

Post a Comment