N K
/
GaNtroller
a fork of priustroller
Fork of priustroller_current by
Diff: sensors.h
- Revision:
- 1:1f58bdcf2956
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sensors.h Sun Mar 01 10:51:28 2015 +0000 @@ -0,0 +1,78 @@ +#ifndef __SENSORS_H +#define __SENSORS_H + +#include "includes.h" + +class CurrentSensor { +public: + virtual float GetCurrent() {return 0.0f;} + virtual void Zero() {} +}; + +class VoltageSensor { +public: + virtual float GetVoltage() {return 0.0f;} + virtual void Zero(){} +}; + +class PositionSensor { +public: + virtual float GetPosition() {return 0.0f;} +}; + +class TempSensor { +public: + virtual float GetTemp() {return 0.0f;} +}; + +class AnalogCurrentSensor: public CurrentSensor { +public: + AnalogCurrentSensor(PinName pin, float volts_per_amp); + virtual void Zero(); + virtual float GetCurrent(); +private: + float _zero_level, _volts_per_amp; + AnalogIn *_in; +}; + +class AnalogVoltageSensor: public VoltageSensor { +public: + AnalogVoltageSensor(PinName pin, float scale); + virtual void Zero(); + virtual float GetVoltage(); +private: + float _zero_level, _scale; + AnalogIn *_in; +}; + +class AnalogHallPositionSensor: public PositionSensor { +public: + AnalogHallPositionSensor(PinName pin_a, PinName pin_b, float cal1_a, float cal2_a, + float cal1_b, float cal2_b, float offset); + virtual float GetPosition(); +private: + float _cal1_a, _cal2_a; + float _cal1_b, _cal2_b; + float _offset; + AnalogIn *_in_a, *_in_b; +}; + +class NtcTempSensor: public TempSensor { +public: + NtcTempSensor(PinName pin, float r_25, float ntc_b, float r_divider); + virtual float GetTemp(); +private: + float _ntc_a, _ntc_b, _r_divider; + AnalogIn *_in; +}; + +class Throttle { +public: + Throttle(PinName pin, float min, float max); + float GetThrottle(); +private: + float _min, _max; + VoltageSensor *_in; +}; + +#endif \ No newline at end of file