Float has 24bit significant so it has plenty of precision for the 10bit
AD conversion and should take less space.
const pin m_analog_pin;
- static double signal_to_pressure(int ad_signal);
+ static float signal_to_pressure(int ad_signal);
public:
PressureSensor() = delete;
PressureSensor &operator=(const PressureSensor &other) = delete;
- double get_pressure();
+ float get_pressure();
};
#endif // PRESSURESENSOR_H
// of 0 V to 5 V.
// Hence signal = (2^10 - 1) / (5 V) * U = 1023 / 5 * (0.96 + 0.384 * p/bar)
// And p/bar = 1 / 0.384 * (5 / (2^10 - 1) * signal - 0.96)
-double PressureSensor::signal_to_pressure(int ad_signal)
+float PressureSensor::signal_to_pressure(int ad_signal)
{
- return (((static_cast<double>(ad_signal) * 5) / (2 << 10 - 1) - 0.96) / 0.384);
+ return (((static_cast<float>(ad_signal) * 5) / (2 << 10 - 1) - 0.96) / 0.384);
}
-double PressureSensor::get_pressure()
+float PressureSensor::get_pressure()
{
return (signal_to_pressure(analogRead(m_analog_pin)));
}