lps22h — חיישן לחץ LPS22HB/HH

מנהל התקן לחיישן הלחץ הננו מסוג ST LPS22HB / LPS22HH MEMS באמצעות 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

כתובת I2C בת 7 סיביות של ההתקן. ברירת המחדל היא 0x5C; חלק מהלוחות מחווטים את פין ה-SDO גבוה מה שבוחר ב-0x5D.

oneshot

אם True, ההתקן מתחיל במצב יריית-יחיד וכל קריאה ל-pressure() או ל-temperature() מפעילה המרה חדשה וממתינה לסיומה. אם False, ה-ODR מוגדר ל-1 Hz והקריאות מחזירות את הדגימה הרציפה האחרונה.

set_oneshot_mode(oneshot: bool) None

מחליפה את ההתקן בין מצבי איסוף רציף ויריית-יחיד בזמן ריצה. מעדכנת בהתאם את שדה ה-ODR של CTRL_REG1.

pressure() float

מחזירה את הלחץ האטמוספרי המוחלט בהקטופסקלים (hPa). במצב יריית-יחיד זה מפעיל המרה חדשה וחוסם עד שדגל מוכנות-נתוני הלחץ מוגדר.

temperature() float

מחזירה את טמפרטורת השבב במעלות צלזיוס. במצב יריית-יחיד זה מפעיל המרה חדשה וחוסם עד שדגל מוכנות-נתוני הטמפרטורה מוגדר.

altitude() float

מחזירה גובה משוער במטרים הנגזר מקריאות הלחץ והטמפרטורה הנוכחיות באמצעות הנוסחה הברומטרית הבינלאומית המתייחסת ללחץ מפלס-הים של 1013.25 hPa.