Sunday, March 12, 2017

Arduino - Interface with HC-SR04 Ultrasonic Sensor

Ultrasonic sensors are used to measure distances from obstacles. We can say that they are like mini-radars. We are using the sensor: HC-SR04

We are building the circuits based on schematics in the following blog:
http://arduinobasics.blogspot.in/2012/11/arduinobasics-hc-sr04-ultrasonic-sensor.html




Step 1: Connect the Ultrasonic Sensor to the Jumper Cable (Ground + VCC)




Step 2: Connect the corresponding Jumper Cable ends to Arduino UNO R3 board at pins referring to 5V and GND.




Step 3: Connect Pins Tr1g and Echo on the Ultrasonic sensor with Jumper Cables




Step 4: The other end of the jumper cables connect to Pin 7 and Pin 8 Respectively on the Arduino.





Step 5: Ultrasonic measures the nearby distance:





Step 6: Measurement displayed on Graph in cm:




Step 7: Ultrasonic measuring farther object:





Step 8:
Measurement displayed on Graph in cm. We can observe the shift in readings:




Code for running the Ultrasonic sensor:

/*
 HC-SR04 Ping distance sensor:
 VCC to arduino 5v 
 GND to arduino GND
 Echo to Arduino pin 7 
 Trig to Arduino pin 8

 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(500);


1 comment: