3 VCC to arduino 5v 4 GND to arduino GND 5 Echo to Arduino pin 7 6 Trig to Arduino pin 8 7 8 This sketch originates from Virtualmix: http://goo.gl/kJ8Gl 9 Has been modified by Winkle ink here: 10 http://winkleink.blogspot.com.au/2012/05/arduino-hc-sr04-ultrasonic-distance.html 11 And modified further by ScottC here: 12 http://arduinobasics.blogspot.com.au/2012/11/arduinobasics-hc-sr04-ultrasonic13 sensor.html 14 on 10 Nov 2012. 15 */ 16 17 18 #define echoPin 7 // Echo Pin 19 #define trigPin 8 // Trigger Pin 20 #define LEDPin 13 // Onboard LED 21 22 int maximumRange = 200; // Maximum range needed 23 int minimumRange = 0; // Minimum range needed 24 long duration, distance; // Duration used to calculate distance 25 26 void setup() { 27 Serial.begin (9600); 28 pinMode(trigPin, OUTPUT); 29 pinMode(echoPin, INPUT); 30 pinMode(LEDPin, OUTPUT); // Use LED indicator (if required) 31 } 32 33 void loop() { 34 /* The following trigPin/echoPin cycle is used to determine the 35 distance of the nearest object by bouncing soundwaves off of it. */ 36 digitalWrite(trigPin, LOW); 37 delayMicroseconds(2); 38 39 digitalWrite(trigPin, HIGH); 40 delayMicroseconds(10); 41 42 digitalWrite(trigPin, LOW);
//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); }