lps22h — tlakový senzor LPS22HB/HH

Ovladač pro MEMS nano tlakový senzor ST LPS22HB / LPS22HH přes I2C. Zařízení poskytuje jak barometrický tlak, tak údaj o teplotě čipu a může běžet buď nepřetržitě, nebo v jednorázovém („one-shot“) režimu, kde se každé měření spouští explicitně hostitelem.

Příklad:

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)

Třídy

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

Vytvoří instanci LPS22H a nakonfiguruje zařízení s povoleným BDU a aktivním dolnopropustným filtrem.

bus

Nakonfigurovaná sběrnice machine.I2C, k níž je senzor připojen.

address

7bitová I2C adresa zařízení. Výchozí hodnota je 0x5C; některé desky přivádějí pin SDO na vysokou úroveň, což volí 0x5D.

oneshot

Je-li True, zařízení startuje v jednorázovém režimu a každé volání pressure() nebo temperature() spustí novou konverzi a počká na její dokončení. Je-li False, ODR se nastaví na 1 Hz a čtení vracejí poslední nepřetržitý vzorek.

set_oneshot_mode(oneshot: bool) None

Přepne zařízení za běhu mezi nepřetržitým a jednorázovým režimem snímání. Odpovídajícím způsobem aktualizuje pole ODR registru CTRL_REG1.

pressure() float

Vrátí absolutní atmosférický tlak v hektopascalech (hPa). V jednorázovém režimu spustí novou konverzi a blokuje, dokud se nenastaví příznak připravenosti dat o tlaku.

temperature() float

Vrátí teplotu čipu ve stupních Celsia. V jednorázovém režimu spustí novou konverzi a blokuje, dokud se nenastaví příznak připravenosti dat o teplotě.

altitude() float

Vrátí odhadovanou nadmořskou výšku v metrech odvozenou z aktuálních hodnot tlaku a teploty pomocí mezinárodního barometrického vzorce vztaženého k tlaku na hladině moře 1013.25 hPa.