lps22h — LPS22HB/HH trycksensor

Drivrutin för ST:s MEMS-nanotrycksensor LPS22HB / LPS22HH över I2C. Enheten exponerar både barometriskt tryck och en avläsning av chipets temperatur, och kan köras antingen kontinuerligt eller i enskott-läge (”one-shot”) där varje mätning utlöses uttryckligen av värden.

Exempel:

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)

Klasser

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

Skapar en LPS22H-instans och konfigurerar enheten med BDU aktiverat och lågpassfiltret aktivt.

bus

En konfigurerad machine.I2C-buss som sensorn är ansluten till.

address

7-bitars I2C-adress för enheten. Är som standard 0x5C; vissa kort drar SDO-stiftet högt vilket väljer 0x5D.

oneshot

Om True startar enheten i enskott-läge och varje anrop till pressure() eller temperature() utlöser en ny konvertering och väntar på att den ska slutföras. Om False sätts ODR till 1 Hz och avläsningarna returnerar det senaste kontinuerliga samplet.

set_oneshot_mode(oneshot: bool) None

Växlar enheten mellan kontinuerligt och enskott-baserat insamlingsläge under körning. Uppdaterar ODR-fältet i CTRL_REG1 i enlighet med detta.

pressure() float

Returnerar det absoluta atmosfäriska trycket i hektopascal (hPa). I enskott-läge utlöser detta en ny konvertering och blockerar tills flaggan för att tryckdata är klart sätts.

temperature() float

Returnerar chipets temperatur i grader Celsius. I enskott-läge utlöser detta en ny konvertering och blockerar tills flaggan för att temperaturdata är klart sätts.

altitude() float

Returnerar en uppskattad höjd i meter härledd från de aktuella tryck- och temperaturavläsningarna med den internationella barometriska formeln relaterad till ett havsnivåtryck på 1013,25 hPa.