初始化提交
This commit is contained in:
40
arduino-cli/libraries/QDPHCSR04/QDPHCSR04.cpp
Normal file
40
arduino-cli/libraries/QDPHCSR04/QDPHCSR04.cpp
Normal file
@@ -0,0 +1,40 @@
|
||||
|
||||
#include "Arduino.h"
|
||||
#include "QDPHCSR04.h"
|
||||
#include "QDPport.h"
|
||||
UltraSonicDistanceSensor::UltraSonicDistanceSensor(uint8_t PIN) {
|
||||
|
||||
this->triggerPin = QDPport[PIN][1];
|
||||
this->echoPin = QDPport[PIN][0];
|
||||
pinMode(triggerPin, OUTPUT);
|
||||
pinMode(echoPin, INPUT);
|
||||
}
|
||||
|
||||
double UltraSonicDistanceSensor::measureDistanceCm() {
|
||||
double distanceCm = measureDistance()/ 2.0 * 0.0343;
|
||||
if (distanceCm == 0 || distanceCm > 888) {
|
||||
return 888 ;
|
||||
} else {
|
||||
return distanceCm;
|
||||
}
|
||||
}
|
||||
double UltraSonicDistanceSensor::measureDistanceinch() {
|
||||
double distanceCm = measureDistance()/ 2.0 * 0.0343/2.54;
|
||||
if (distanceCm == 0 || distanceCm > 188) {
|
||||
return 188 ;
|
||||
} else {
|
||||
return distanceCm;
|
||||
}
|
||||
}
|
||||
long UltraSonicDistanceSensor::measureDistance() {
|
||||
digitalWrite(triggerPin, LOW);
|
||||
delayMicroseconds(2);
|
||||
// Hold trigger for 10 microseconds, which is signal for sensor to measure distance.
|
||||
digitalWrite(triggerPin, HIGH);
|
||||
delayMicroseconds(10);
|
||||
digitalWrite(triggerPin, LOW);
|
||||
// Measure the length of echo signal, which is equal to the time needed for sound to go there and back.
|
||||
unsigned long durationMicroSec = pulseIn(echoPin, HIGH);
|
||||
return durationMicroSec;
|
||||
|
||||
}
|
||||
28
arduino-cli/libraries/QDPHCSR04/QDPHCSR04.h
Normal file
28
arduino-cli/libraries/QDPHCSR04/QDPHCSR04.h
Normal file
@@ -0,0 +1,28 @@
|
||||
|
||||
|
||||
#ifndef QDPHCSR04_H
|
||||
#define QDPHCSR04_H
|
||||
|
||||
#include "Arduino.h"
|
||||
|
||||
class UltraSonicDistanceSensor {
|
||||
public:
|
||||
/**
|
||||
* @param triggerPin Digital pin that is used for controlling sensor (output).
|
||||
* @param echoPin Digital pin that is used to get information from sensor (input).
|
||||
*/
|
||||
UltraSonicDistanceSensor(uint8_t PIN);
|
||||
|
||||
/**
|
||||
* Measures distance by sending ultrasonic waves and measuring time it takes them
|
||||
* to return.
|
||||
* @returns Distance in centimeters, or negative value if distance is greater than 400cm.
|
||||
*/
|
||||
double measureDistanceCm();
|
||||
double measureDistanceinch();
|
||||
long measureDistance();
|
||||
private:
|
||||
int triggerPin, echoPin;
|
||||
};
|
||||
|
||||
#endif // HCSR04_H
|
||||
Reference in New Issue
Block a user