library for SEN0169 ph probe from DFRobot

Dependents:   2022_TICE_Electrolyse

lib_SEN0169.h

Committer:
jsanchez
Date:
2022-01-11
Revision:
0:f17189a32558

File content as of revision 0:f17189a32558:

/** SEN0169 Class
*
* @purpose       MbedOs library for Gravity : Analog pH Sensor / Meter Kit V2, SKU: SEN0161-V2
*
* Example:
* @code
*
* #include "mbed.h"
* #include "lib_SEN0169.h"
*
* Serial pc(USBTX, USBRX, 230400);
* SEN0169 sensor_0(A0);
*
* int main()
* {
*    pc.printf("2022_TEST_SEN0169\n\r");
*    pc.printf("pH = (voltage - intercept) / slope\n\r");
*    while (true) {
*        ThisThread::sleep_for(1000);
*        pc.printf("voltage = %.03f ; pH = %.01f\n\r", sensor_0.read_voltage(), sensor_0.read_ph());
*        float* parameters = sensor_0.get_parameters();
*        pc.printf("ph4_voltage = %.03f ; pH7_voltage = %.03f ; pH10_voltage = %.03f ; slope = %f ; intercept = %f\n\r", parameters[0], parameters[1], parameters[2], parameters[3], parameters[4]);
*    }
* }
* 
* @endcode
*
* @file          lib_SEN0169.h 
* @date          Jan 2022
* @author        Jérémie SANCHEZ
*/

#ifndef _SEN0169_H_
#define _SEN0169_H_

#include "mbed.h"

class SEN0169
{
public:
    SEN0169(PinName data_pin);
    ~SEN0169();
    void    calibration(uint8_t ph_tampon);
    float*  get_parameters(void);
    float   read_voltage(void);
    float   read_ph(void);         

private:
    AnalogIn        _datapin;
    float           _phValue;
    float           _voltage;
    typedef enum    {ACIDE, NEUTRE, BASIC, SLOPE, INTERCEPT} enum_params;
    float           _params[5] = {2032.44f,1500.0f,967.56f,-177.48f,2742.36f};
};

#endif