Main Content

lps22hb

Connect to LPS22HB sensor on Raspberry Pi hardware I2C bus

Description

The lps22hb object reads ambient temperature and absolute pressure using the STMicroelectronics® I2C-based LPS22HB sensor interfaced with the Raspberry Pi™ hardware. This object represents a connection from MATLAB® to the LPS22HB sensor connected on the Raspberry Pi hardware board I2C pins I2C1_SDA (GPIO 2) and I2C1_SCL (GPIO 3). Before you use the lps22hb object, ensure that the I2C interface is enabled on your Raspberry Pi kernel. You can then create a connection to the Raspberry Pi board using the raspi object and set its properties. For more information, see enableI2C and raspi.

Creation

Description

example

sensor = lps22hb(mypi) creates a LPS22HB sensor object with default property values. The object represents a connection to the sensor on the Raspberry Pi hardware mypi.

example

sensor = lps22hb(mypi,Bus, I2CAddress) creates a LPS22HB sensor object that represents a connection to the sensor connected to the I2C bus on the Raspberry Pi hardware mypi.

Input Arguments

expand all

Raspberry Pi hardware board connection specified as a raspi object.

Example: sensor = lps22hb(mypi) creates a connection to the LPS22HB sensor on the Raspberry Pi object mypi.

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

I2C bus address of the Raspberry Pi hardware board.

Example: sensor = lps22hb(mypi, 'Bus', 'i2c-0') creates the sensor object on the 'i2c-0' bus of the Raspberry Pi board.

Data Types: char

I2C address of the LPS22HB sensor. This is the address of the sensor when multiple sensors are connected to the same hardware board. LPS22HB sensor has two slave addresses that depend on the logic level of pin SA0 of the sensor. For example, if the logic level of SA0 is low, the I2C address is '0x5C' and if the logic level of SA0 is high, the I2C address is '0x5D'.

Example: sensor = lps22hb(mypi,'I2CAddress','0x5D')

Data Types: string | integer | hexadecimal | binary | char

Object Functions

readTemperatureRead one ambient temperature data sample from LPS22HB sensor
readPressureRead one absolute pressure data sample from LPS22HB sensor

Examples

collapse all

Ensure that the I2C interface on the Raspberry Pi kernel is enabled and then create an lps22hb sensor object. Follow these steps to enable the I2C interface in the Raspberry Pi hardware kernel.

Open the Raspberry Pi Linux® terminal.

Open the Raspberry Pi Software Configuration Tool dialog box.

sudo raspi-config

Select Interfacing Options > I2C.

Raspberry Pi Kernel I2C Interfacing options selection on Linux terminal

Select Yes when prompted to enable the I2C interface.

Raspberry Pi Kernel I2C Interfacing enabling options

Select Yes when prompted to automatically load the I2C kernel module.

Select Finish.

Select Yes when prompted to reboot.

Tip

You can also enable the I2C interface using the Raspberry Pi Resource Monitor App.

Create a connection from MATLAB to the Raspberry Pi hardware board.

mypi = raspi;
mypi = 

  Raspi with Properties:

           DeviceAddress: 'raspberrypi-hysdu8X38o'
                    Port: 18734
               BoardName: 'Raspberry Pi 3 Model B+'
           AvailableLEDs: {'led0'}
    AvailableDigitalPins: [4,5,6,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]
    AvailableSPIChannels: {‘CE0’,’CE1’}
       AvailableI2CBuses: {'i2c-1'}
             I2CBusSpeed: 100000
        AvailabelWebCams: mmal service 16.1 (platform:bcm2835-v4l2)

Get the address of the LPS22HB sensor connected to the I2C bus 'i2c-1'.

sensor = scanI2CBus(mypi,'i2c-1');
ans =

  1×1 cell array

    {'0x5D'}

Create an lps22hb sensor object on the I2C bus 'i2c-1' on address '0x5D'.

sensor = lps22hb(mypi,'Bus','i2c-1','I2CAddress','0x5D');
sensor = 

  lps22hb with properties:

                         I2CAddress: 93 ("0x5D")
                                Bus: i2c-1

Extended Capabilities

Introduced in R2021a