32 lines
733 B
C++
32 lines
733 B
C++
|
/** \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__ */
|