lps22h --- LPS22HB/HH 压力传感器

用于通过 I2C 连接 ST LPS22HB / LPS22HH MEMS 纳米压力传感器的驱动程序。该器件同时提供气压和芯片温度读数,可以连续运行,也可以在单次("one-shot")模式下运行,在该模式下每次测量都由主机显式触发。

示例:

import time
from machine import Pin, I2C
from lps22h import LPS22H

bus = I2C(1, scl=Pin("P15"), sda=Pin("P14"))
lps = LPS22H(bus, oneshot=False)

while True:
    print("Pressure: %.2f hPa  Temperature: %.2f C" %
          (lps.pressure(), lps.temperature()))
    time.sleep_ms(10)

class lps22h.LPS22H(bus: machine.I2C, address: int = 0x5C, oneshot: bool = False)

构造一个 LPS22H 实例,并在启用 BDU 和激活低通滤波器的情况下配置该器件。

bus

传感器所连接的已配置的 machine.I2C 总线。

address

该器件的 7 位 I2C 地址。默认为 0x5C;某些电路板将 SDO 引脚拉高,从而选择 0x5D

oneshot

如果为 True,器件以单次模式启动,每次调用 pressure()temperature() 都会触发一次新的转换并等待其完成。如果为 False,则 ODR 设置为 1 Hz,读数返回最近的连续采样值。

set_oneshot_mode(oneshot: bool) None

在运行时将器件在连续采集模式和单次采集模式之间切换。相应地更新 CTRL_REG1 的 ODR 字段。

pressure() float

返回以百帕(hPa)为单位的绝对大气压。在单次模式下,这会触发一次新的转换并阻塞,直到压力数据就绪标志被置位。

temperature() float

返回以摄氏度为单位的芯片温度。在单次模式下,这会触发一次新的转换并阻塞,直到温度数据就绪标志被置位。

altitude() float

返回根据当前压力和温度读数、使用以海平面气压 1013.25 hPa 为基准的国际气压公式推算出的以米为单位的估计海拔高度。