Create a class to interact with the ultrasonic distance sensor
This commit is contained in:
parent
de159357fd
commit
2522567be0
45
code/DistSensor.cpp
Normal file
45
code/DistSensor.cpp
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#include <Arduino.h>
|
||||||
|
|
||||||
|
class DistSensor {
|
||||||
|
|
||||||
|
private:
|
||||||
|
int trigPin;
|
||||||
|
int echoPin;
|
||||||
|
const int ULTRASONIC_CM_FACTOR = 58;
|
||||||
|
|
||||||
|
void make_measurement(){
|
||||||
|
digitalWrite(this->trigPin, HIGH);
|
||||||
|
delayMicroseconds(10);
|
||||||
|
digitalWrite(this->trigPin, LOW);
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
int duration;
|
||||||
|
float default_distance;
|
||||||
|
|
||||||
|
DistSensor(int trigPin, int echoPin, float default_distance){
|
||||||
|
this->trigPin = trigPin;
|
||||||
|
this->echoPin = echoPin;
|
||||||
|
this->default_distance = default_distance;
|
||||||
|
}
|
||||||
|
|
||||||
|
void configure_pins(){
|
||||||
|
pinMode(this->trigPin, OUTPUT);
|
||||||
|
pinMode(this->echoPin, INPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
int get_duration(){
|
||||||
|
this->make_measurement();
|
||||||
|
this->duration = pulseIn(this->echoPin, HIGH);
|
||||||
|
return this->duration;
|
||||||
|
}
|
||||||
|
|
||||||
|
int get_distance(){
|
||||||
|
return get_duration() / this->ULTRASONIC_CM_FACTOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool is_in_range(){
|
||||||
|
return this->get_distance() < this->default_distance;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
Loading…
x
Reference in New Issue
Block a user