Team APP
/
APP6
Code APP6
Diff: main.cpp
- Revision:
- 0:4101acb9ab42
- Child:
- 1:b868d04610be
diff -r 000000000000 -r 4101acb9ab42 main.cpp --- /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); + } +}