HC‐SR04 Ultra Sonic Sensor - johnosbb/Automation GitHub Wiki
HC-SR04
Operating Voltage
5V DC
Operating Current
15mA
Operating Frequency
40KHz
Min Range
2cm / 1 inch
Max Range
400cm / 13 feet
Accuracy
3mm
Measuring Angle
<15°
Dimension
45 x 20 x 15mm
*/
// defines pins numbersconstinttrigPin=9;
constintechoPin=10;
// defines variableslongduration;
intdistance;
voidsetup() {
pinMode(trigPin, OUTPUT); // Sets the trigPin as an OutputpinMode(echoPin, INPUT); // Sets the echoPin as an InputSerial.begin(9600); // Starts the serial communication
}
voidloop() {
// Clears the trigPindigitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro secondsdigitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microsecondsduration=pulseIn(echoPin, HIGH);
// Calculating the distancedistance=duration*0.034 / 2;
// Prints the distance on the Serial MonitorSerial.print("Distance: ");
Serial.println(distance);
}
Using the NewPing Library
#include<NewPing.h>#defineTRIGGER_PIN 9
#defineECHO_PIN 10
#defineMAX_DISTANCE 400 // Maximum distance we want to measure (in centimeters).
NewPingsonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.voidsetup() {
Serial.begin(9600);
}
voidloop() {
delay(50); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.intdistance=sonar.ping_cm(); // Send ping, get distance in cm and print result (0 = outside set distance range)Serial.print("Distance: ");
Serial.print(distance);
Serial.println("cm");
}