From: Lukáš Jiřiště Date: Wed, 23 Oct 2024 08:53:24 +0000 (+0200) Subject: Switch from double to float X-Git-Url: https://git.ljiriste.work/?a=commitdiff_plain;h=14da9d8ea61a7f26b56a76b16f511d0af6320934;p=Servomatic.git Switch from double to float Float has 24bit significant so it has plenty of precision for the 10bit AD conversion and should take less space. --- diff --git a/PressureSensor.h b/PressureSensor.h index 1a849ae..b3347f9 100644 --- a/PressureSensor.h +++ b/PressureSensor.h @@ -8,7 +8,7 @@ class PressureSensor const pin m_analog_pin; - static double signal_to_pressure(int ad_signal); + static float signal_to_pressure(int ad_signal); public: PressureSensor() = delete; @@ -18,7 +18,7 @@ class PressureSensor PressureSensor &operator=(const PressureSensor &other) = delete; - double get_pressure(); + float get_pressure(); }; #endif // PRESSURESENSOR_H diff --git a/PressureSensor.ino b/PressureSensor.ino index eae698e..a645a3c 100644 --- a/PressureSensor.ino +++ b/PressureSensor.ino @@ -17,12 +17,12 @@ PressureSensor::~PressureSensor() // 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(ad_signal) * 5) / (2 << 10 - 1) - 0.96) / 0.384); + return (((static_cast(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))); }