Code APP6

Dependencies:   mbed mbed-rtos

Revision:
0:4101acb9ab42
Child:
1:b868d04610be
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Apr 04 16:28:49 2017 +0000
@@ -0,0 +1,36 @@
+#include "mbed.h"
+#include <cmath>
+
+const float coefficients[6] = {4.7378, -9.0288, 14.136, -10.126, 3.2801, -0.3927};
+AnalogIn input(p15);
+
+float read_voltage()
+{
+    const float ratio = 19859.4;
+    float voltage = (float) input.read_u16();
+    return voltage / ratio;
+}
+
+float get_liquid_level_cm(const float* coefficients, const int number_of_coefficients, const float hall_sensor_voltage)
+{
+    float liquid_level_cm = 54;
+    for(int i=0; i<number_of_coefficients; i++)
+    {
+        liquid_level_cm -= pow(hall_sensor_voltage, (float)i) * coefficients[i];
+    }
+    return liquid_level_cm;
+}
+
+int main()
+{
+    float voltage;
+    float liquid_level_cm;
+    
+    while(1)
+    {
+        voltage = read_voltage();
+        liquid_level_cm = get_liquid_level_cm(coefficients, 6, voltage);
+        
+        printf("Niveau du liquide (cm) : %f\r\n", liquid_level_cm);
+    }
+}