Code APP6

Dependencies:   mbed mbed-rtos

main.cpp

Committer:
GaiSensei
Date:
2017-04-04
Revision:
0:4101acb9ab42
Child:
1:b868d04610be

File content as of revision 0:4101acb9ab42:

#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);
    }
}