lps22h — LPS22HB/HH drukoppervlaktesensor

Driver voor de ST LPS22HB / LPS22HH MEMS nano druksensor via I2C. Het apparaat stelt zowel barometrische druk als een uitlezing van de chiptemperatuur beschikbaar, en kan ofwel continu draaien ofwel in single-shot-modus (“one-shot”), waarbij elke meting expliciet door de host wordt geactiveerd.

Voorbeeld:

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)

Klassen

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

Construeer een LPS22H-instantie en configureer het apparaat met BDU ingeschakeld en het laagdoorlaatfilter actief.

bus

Een geconfigureerde machine.I2C-bus waaraan de sensor is gekoppeld.

address

7-bits I2C-adres van het apparaat. Standaard 0x5C; sommige boards trekken de SDO-pin hoog, wat 0x5D selecteert.

oneshot

Als True, start het apparaat in one-shot-modus en activeert elke aanroep van pressure() of temperature() een nieuwe conversie en wacht tot deze klaar is. Als False, wordt de ODR ingesteld op 1 Hz en geven uitlezingen het meest recente continue sample terug.

set_oneshot_mode(oneshot: bool) None

Schakel het apparaat tijdens runtime tussen de continue en one-shot acquisitiemodi. Werkt het ODR-veld van CTRL_REG1 dienovereenkomstig bij.

pressure() float

Geeft de absolute atmosferische druk in hectopascal (hPa) terug. In one-shot-modus activeert dit een nieuwe conversie en blokkeert tot de data-ready-vlag voor de druk is gezet.

temperature() float

Geeft de chiptemperatuur in graden Celsius terug. In one-shot-modus activeert dit een nieuwe conversie en blokkeert tot de data-ready-vlag voor de temperatuur is gezet.

altitude() float

Geeft een geschatte hoogte in meters terug, afgeleid van de huidige uitlezingen van druk en temperatuur met behulp van de internationale barometrische formule, gerefereerd aan een druk op zeeniveau van 1013.25 hPa.