MRMS
mrm-ir-finder2.h
1 #pragma once
2 #include "Arduino.h"
3 #include <mrm-board.h>
4 
12 #define MAX_IR_FINDER2s 1 //Maximum number of IR finders.
13 #define IR_FINDERS_DETECTION_THRESHOLD 50 // Increasing this number mitigates noise problems but decreases sensitivity
14 #define IR_FINDERS_MAXIMUM_ANALOG_READ 3300 // Change this number according to Your system in order to get exact angles.
15  //Numbers close to 1023 are expected for 10-bit ADCs and around 3500 for 12-bit ADCs (ESP32).
16 
17 struct IRSource {
18 public:
19  int16_t angle;
20  uint16_t distance;
21  bool any;
22 };
23 
25 {
26  int nextFree;
27  uint8_t anglePins[MAX_IR_FINDER2s];
28  uint8_t distancePins[MAX_IR_FINDER2s];
29  Robot* robotContainer;
30 
31 public:
35  Mrm_ir_finder2(Robot* robot);
36 
37  ~Mrm_ir_finder2();
38 
43  void add(uint8_t anglePin, uint8_t distancePin);
44 
49  bool anyIRSource(uint8_t sensorNumber = 0);
50 
55  IRSource irSource(uint8_t sensorNumber = 0);
56 
60  void test(bool updateByTimerInterrupts = false);
61 };
Definition: mrm-ir-finder2.h:25
void add(uint8_t anglePin, uint8_t distancePin)
Definition: mrm-ir-finder2.cpp:18
bool anyIRSource(uint8_t sensorNumber=0)
Definition: mrm-ir-finder2.cpp:33
IRSource irSource(uint8_t sensorNumber=0)
Definition: mrm-ir-finder2.cpp:42
void test(bool updateByTimerInterrupts=false)
Definition: mrm-ir-finder2.cpp:58
Mrm_ir_finder2(Robot *robot)
Definition: mrm-ir-finder2.cpp:7
Definition: mrm-robot.h:42
Definition: mrm-ir-finder2.h:17