MatrixMiniR4 1.1.5
Matrix Mini R4 Arduino Library API Documentation
Loading...
Searching...
No Matches
MiniR4HC04.h
Go to the documentation of this file.
1
7#ifndef MINIR4HC04_H
8#define MINIR4HC04_H
9
10#include <Arduino.h>
11
21template<uint8_t PIN1, uint8_t PIN2> class MiniR4HC04
22{
23public:
25 {
26 _trigPin = PIN1;
27 _echoPin = PIN2;
28 }
29
38 float getDistance(void)
39 {
40 pinMode(_trigPin, OUTPUT);
41 pinMode(_echoPin, INPUT);
42 digitalWrite(_trigPin, LOW);
43 delayMicroseconds(2);
44
45 digitalWrite(_trigPin, HIGH);
46 delayMicroseconds(10);
47 digitalWrite(_trigPin, LOW);
48
49 float duration = pulseIn(_echoPin, HIGH, 26500); // timeout = 450cm
50
51 if (duration == 0) {
52 delayMicroseconds(100);
53 // sensor timeout
54 return -1;
55 } else if (duration > 0 && duration < 294) {
56 return 5.0;
57 } else {
58 return (0.017 * duration);
59 }
60 }
61
62
63private:
64 uint8_t _trigPin;
65 uint8_t _echoPin;
66};
67
68#endif // MINIR4HC04_H
Class for controlling the HC-SR04 ultrasonic sensor.
Definition MiniR4HC04.h:22
float getDistance(void)
Measures the distance using the HC-SR04 sensor.
Definition MiniR4HC04.h:38