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 海平面壓力為參考的國際氣壓公式,傳回以公尺為單位的估計海拔高度。