Arduino library to support the LPS22HH 260-1260 hPa absolute digital output barometer
This sensor uses I2C, I3C or SPI to communicate. For I2C it is then required to create a TwoWire interface before accessing to the sensors:
TwoWire dev_i2c(I2C_SDA, I2C_SCL);
dev_i2c.begin();
For SPI it is then required to create a SPI interface before accessing to the sensors:
SPIClass dev_spi(SPI_MOSI, SPI_MISO, SPI_SCK);
dev_spi.begin();
For I3C it is then required to create an I3C interface before accessing to the sensors:
I3C.begin(I3C_SDA, I3C_SCL, 1000000U);
An instance can be created and enabled when the I2C bus is used following the procedure below:
LPS22HHSensor PressTemp(&dev_i2c);
PressTemp.begin();
PressTemp.Enable();
An instance can be created and enabled when the SPI bus is used following the procedure below:
LPS22HHSensor PressTemp(&dev_spi, CS_PIN);
PressTemp.begin();
PressTemp.Enable();
An instance can be created and enabled when the I3C bus is used with SETDASA (static-to-dynamic address assignment):
LPS22HHSensor PressTemp(&I3C, LPS22HH_I3C_ADD_H);
I3C.resetDynamicAddresses();
I3C.assignDynamicAddress(PressTemp.getStaticAddress(), LPS22HH_DYNAMIC_ADDRESS);
PressTemp.begin(LPS22HH_DYNAMIC_ADDRESS);
I3C.setClock(12500000);
PressTemp.Enable();
The access to the sensor values is done as explained below:
Read pressure and temperature.
float pressure;
float temperature;
PressTemp.GetPressure(&pressure);
PressTemp.GetTemperature(&temperature);
There are several examples with the LPS22HH library.
- LPS22HH_DataLog_Terminal_I2C: This application shows how to get pressure and temperature data from the LPS22HH sensor over I2C and print them on terminal.
- LPS22HH_Datalog_Terminal_I3C: This application shows how to use the LPS22HH sensor over I3C using SETDASA.
You can find the source files at
https://github.com/stm32duino/LPS22HH
The LPS22HH datasheet is available at
https://www.st.com/content/st_com/en/products/mems-and-sensors/pressure-sensors/lps22hh.html