#ifndef POTENTIOMETER_h #define POTENTIOMETER_h class Potentiometer { int EMA_S = 0; //initialization of EMA S float EMA_a = 0.6; int _pin; int _id; int _value; int _previousReading; bool _inputFlag = false; bool _changeFlag = false; unsigned long _previousTimer; int _interval = 200; void (*_cb)(Potentiometer*, uint8_t, uint8_t); // Callback function int _read(); void _setValue(int x); public: static const uint8_t kEventStableUpdate = 0; static const uint8_t kEventUnstableUpdate = 1; Potentiometer(int pin, int id = 99) : _pin(pin), _id(id); void setEventHandler(void(*function)(Potentiometer*, uint8_t, uint8_t)); int getValue(); int getId(); void check(); }; #endif