lps22h --- LPS22HB/HH 圧力センサー

ST LPS22HB / LPS22HH MEMS ナノ圧力センサーを I2C 経由で扱うドライバです。このデバイスは気圧とダイ温度の両方の読み取り値を提供し、連続モードまたは単発(「ワンショット」)モードのいずれかで動作できます。ワンショットモードでは各測定がホストによって明示的にトリガーされます。

例:

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 ピンを High に固定しており、その場合は 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 を基準とした国際気圧式を用いて推定した高度をメートル単位で返します。