初始化提交

This commit is contained in:
王立帮
2024-07-20 22:09:06 +08:00
commit c247dd07a6
6876 changed files with 2743096 additions and 0 deletions

View 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;
}

View 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