257
Chapter 24 Ultrasonic Ranging
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
int
main
(){
printf
(
"Program is starting ... \n"
);
if
(
wiringPiSetup
()
==
-
1
){
//when initialize wiring failed, print message to screen
printf
(
"setup wiringPi failed !"
);
return
1
;
}
float
distance
=
0
;
pinMode
(
trigPin
,
OUTPUT
);
pinMode
(
echoPin
,
INPUT
);
while
(
1
){
distance
=
getSonar
();
printf
(
"The distance is : %.2f cm\n"
,
distance
);
delay
(
1000
);
}
return
1
;
}
First, define the pins and the maximum measurement distance.
#define trigPin 4
#define echoPin 5
#define MAX_DISTANCE 220
//define the maximum measured distance
If the module does not return high level, we can not wait forever. So we need to calculate the lasting time
over maximum distance, that is, time Out.
timOut= 2*MAX_DISTANCE/100/340*1000000
. The constant part
behind is approximately equal to 58.8.
#define timeOut MAX_DISTANCE*60
Subfunction
getSonar
() function is used to start the ultrasonic module for a measurement, and return the
measured distance with unit cm. In this function, first let trigPin send 10us high level to start the ultrasonic
module. Then use
pulseIn
() to read ultrasonic module and return the duration of high level. Finally calculate
the measured distance according to the time.
float
getSonar
(){
//
get the measurement results of ultrasonic module, with unit: cm
long
pingTime
;
float
distance
;
digitalWrite
(
trigPin
,
HIGH
);
//trigPin send 10
us
high level
delayMicroseconds
(
10
);
digitalWrite
(
trigPin
,
LOW
);
pingTime
=
pulseIn
(
echoPin
,
HIGH
,
timeOut
);
//read plus time of echoPin
distance
=
(
float
)
pingTime
*
340.0
/
2.0
/
10000.0
;
// the sound speed is 340m/s, and
calculate distance
return
distance
;
}
Содержание Ultimate Starter Kit
Страница 1: ...Free your innovation Freenove is an open source electronics platform www freenove com ...
Страница 116: ...Chapter 9 Potentiometer RGBLED 116 www freenove com support freenove com Circuit Schematic diagram ...
Страница 117: ...117 Chapter 9 Potentiometer RGBLED www freenove com support freenove com Hardware connection ...
Страница 136: ...Chapter 12 Joystick 136 www freenove com support freenove com Circuit Schematic diagram Hardware connection ...
Страница 155: ...155 Chapter 14 Relay Motor www freenove com support freenove com Hardware connection OFF 3 3V ...
Страница 173: ...173 Chapter 16 Stepping Motor www freenove com support freenove com Hardware connection ...
Страница 182: ...Chapter 17 74HC595 LEDBar Graph 182 www freenove com support freenove com Circuit Schematic diagram Hardware connection ...
Страница 197: ...197 Chapter 18 74HC595 7 segment display www freenove com support freenove com Circuit Schematic diagram ...
Страница 198: ...Chapter 18 74HC595 7 segment display 198 www freenove com support freenove com Hardware connection ...
Страница 239: ...239 Chapter 22 Matrix Keypad www freenove com support freenove com Circuit Schematic diagram ...
Страница 240: ...Chapter 22 Matrix Keypad 240 www freenove com support freenove com Hardware connection ...
Страница 270: ...Chapter 26 WebIOPi IOT 270 www freenove com support freenove com Circuit Schematic diagram Hardware connection ...