EasyManua.ls Logo

Freenove ESP32

Default Icon
159 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Need support? support@freenove.com
110
Chapter 10 Ultrasonic Ranging
www.freenove.com
UltrasonicRanging.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "UltrasonicRanging.h"
constexpr int MAX_DISTANCE = 300; // Maximum sensor distance is rated at 400-500cm.
constexpr float timeOut = MAX_DISTANCE * 60; // timeOut= 2*MAX_DISTANCE /100 /340 *1000000 =
MAX_DISTANCE*58.8
constexpr int soundVelocity = 340; // define sound speed=340m/s
void setupSonar() {
pinMode(PIN_TRIG, OUTPUT); // set trigPin to output mode
pinMode(PIN_ECHO, INPUT); // set echoPin to input mode
}
float getSonar() {
unsigned long pingTime, t0, t1;
float distance;
// make PIN_TRIG output high level lasting for 10μs to triger HC_SR04
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
// Wait HC-SR04 returning to the high level and measure out this waitting time
t0 = micros();
pingTime = pulseIn(PIN_ECHO, HIGH, timeOut); // unit: us
t1 = micros() - t0;
// calculate the distance according to the time
if (t1 < timeOut) {
distance = (float)pingTime * soundVelocity / 2 / 10000;
} else {
distance = MAX_DISTANCE;
}
return distance; // return the distance value
}
Ultrasonic module initialization function.
7
8
9
10
void setupSonar() {
pinMode(PIN_TRIG, OUTPUT); // set trigPin to output mode
pinMode(PIN_ECHO, INPUT); // set echoPin to input mode
}

Related product manuals