Driver for FXPQ3115 sensor.

Example usage

main.cpp

#include "mbed.h"
#include "FXPQ3115.h"

FXPQ3115 pressure_sensor(P0_13, P0_14);

int main()
{
    pressure_sensor.sensor_init();

    while (1) {
        pressure_sensor.read_oneshotMode_bar();
        printf("Pressure in Pascals: %d\n", pressure_sensor.print_pressure());
        thread_sleep_for(20000);
    }
}

FXPQ3115.h

Committer:
Pawel Zarembski
Date:
2020-03-05
Revision:
0:0b221579ed52

File content as of revision 0:0b221579ed52:

#ifndef FXPQ3115_H_
#define FXPQ3115_H_

#include "mbed.h"
#include "FXPQ3115_reg.h"

#ifndef SUCCESS
#define SUCCESS 0
#endif

#ifndef FAILURE
#define FAILURE 1
#endif

#ifdef FXPQ3115_I2C_ADDRESS
#define FXPQ3115_I2C_ADDRESS_SHIFTED (FXPQ3115_I2C_ADDRESS << 1)
#endif

#define FXPQ3115_PRESSURE_CONV_FACTOR (64)     /* Will give Pascals */
#define FXPQ3115_ALTITUDE_CONV_FACTOR (65536)  /* Will give meters above MSL */
#define FXPQ3115_TEMPERATURE_CONV_FACTOR (256) /* Will give °C */

class FXPQ3115 {
    public:
        FXPQ3115(PinName sda, PinName scl);

        uint8_t sensor_init();
        uint8_t read_oneshotMode_bar();
        uint32_t print_pressure();

    private:
        I2C _i2c;
        char _bar_data[3];

        uint8_t _config_bar();
        uint8_t _wait_for_acq();
};

#endif // FXPQ3115_H_