-
Notifications
You must be signed in to change notification settings - Fork 1
/
Ultrasonic.cpp
55 lines (49 loc) · 1.15 KB
/
Ultrasonic.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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// Ultrasonic - Library for HR-SC04 Ultrasonic Ranging Module.
// GitHub: https://github.com/JRodrigoTech/Ultrasonic-HC-SR04
// #### LICENSE ####
// This code is licensed under Creative Commons Share alike
// and Attribution by J.Rodrigo ( http://www.jrodrigo.net ).
#if ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
#include "Ultrasonic.h"
Ultrasonic::Ultrasonic(int TP, int EP)
{
pinMode(TP,OUTPUT);
pinMode(EP,INPUT);
Trig_pin=TP;
Echo_pin=EP;
Time_out=3000; // 3000 µs = 50cm // 30000 µs = 5 m
}
Ultrasonic::Ultrasonic(int TP, int EP, long TO)
{
pinMode(TP,OUTPUT);
pinMode(EP,INPUT);
Trig_pin=TP;
Echo_pin=EP;
Time_out=TO;
}
long Ultrasonic::Timing()
{
digitalWrite(Trig_pin, LOW);
delayMicroseconds(2);
digitalWrite(Trig_pin, HIGH);
delayMicroseconds(10);
digitalWrite(Trig_pin, LOW);
duration = pulseIn(Echo_pin,HIGH,Time_out);
if ( duration == 0 ) {
duration = Time_out; }
return duration;
}
float Ultrasonic::Ranging(int sys)
{
Timing();
if (sys) {
distance_cm = duration /29.41 / 2 ;
return distance_cm;
} else {
distance_inc = duration / 74.70 / 2;
return distance_inc; }
}