34 lines
634 B
C++
34 lines
634 B
C++
#ifndef SPEEDOMETER_H
|
|
#define SPEEDOMETER_H
|
|
|
|
#include <cstdint>
|
|
#include <ESP32Encoder.h>
|
|
#include <math.h>
|
|
|
|
#include "config.h"
|
|
#include "debugMqtt.h"
|
|
|
|
class Speedometer {
|
|
public:
|
|
Speedometer();
|
|
void init(uint8_t pinA, uint8_t pinB);
|
|
void runSpeedometer();
|
|
double getSpeed();
|
|
uint8_t getDirection();
|
|
|
|
|
|
private:
|
|
void addValToBuf(int16_t val);
|
|
int16_t getAverage();
|
|
|
|
ESP32Encoder encoder;
|
|
DebugMqtt *debug;
|
|
|
|
double speed = 0;
|
|
uint32_t last_millis = 0;
|
|
|
|
uint8_t bufPos = 0;
|
|
int16_t buf[BUF_SIZE];
|
|
};
|
|
|
|
#endif // SPEEDOMETER_H
|