lps22h — датчик тиску LPS22HB/HH

Драйвер для нано-датчика тиску MEMS ST LPS22HB / LPS22HH через I2C. Пристрій надає як барометричний тиск, так і показання температури кристала та може працювати або безперервно, або в режимі одиночного виміру («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 підтягнутий до VCC, що вибирає 0x5D.

oneshot

Якщо True, пристрій запускається в режимі одиночного виміру, і кожен виклик pressure() або temperature() ініціює нове перетворення та очікує його завершення. Якщо False, частота ODR встановлюється на 1 Гц і зчитування повертають останній безперервний зразок.

set_oneshot_mode(oneshot: bool) None

Перемикає пристрій між режимами безперервного та одиночного вимірювання під час роботи. Відповідно оновлює поле ODR регістра CTRL_REG1.

pressure() float

Повертає абсолютний атмосферний тиск у гектопаскалях (hPa). У режимі одиночного виміру ініціює нове перетворення та блокує виконання до встановлення прапорця готовності даних тиску.

temperature() float

Повертає температуру кристала у градусах Цельсія. У режимі одиночного виміру ініціює нове перетворення та блокує виконання до встановлення прапорця готовності даних температури.

altitude() float

Повертає розрахункову висоту в метрах, отриману з поточних показань тиску та температури за міжнародною барометричною формулою з відліком від тиску на рівні моря 1013,25 hPa.