/** \File SingleAxis.hpp * \copyright (c) 2025 len0rd * \date 2025-01-14 * * Simple utility class for reading a 'single axis' analog device. ie: a potentiometer */ #ifndef __SINGLEAXIS_H__ #define __SINGLEAXIS_H__ #include "Arduino.h" #include "NvmEeprom.hpp" class LinearSingleAxis { public: LinearSingleAxis(uint8_t analogPin); uint16_t readRaw(); /// read as a percentage between calbirated min/max /// Return a value 0-100 uint8_t readPercent(); /// Apply the provided calibration and use on subsequent @ref readPercent calls void applyCalibration(const LinearAnalogCalibration& cal); private: uint8_t m_pin; LinearAnalogCalibration m_cal; }; #endif /* __SINGLEAXIS_H__ */