lps22h --- sensor ความดัน LPS22HB/HH

ไดรเวอร์สำหรับ sensor ความดัน nano แบบ MEMS รุ่น ST LPS22HB / LPS22HH ผ่าน I2C อุปกรณ์เปิดเผยทั้งการอ่านค่าความดันบรรยากาศและอุณหภูมิของชิป และสามารถทำงานได้ทั้งแบบต่อเนื่องหรือแบบ single-shot ("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 และตัวกรองแบบ low-pass

bus

บัส machine.I2C ที่กำหนดค่าแล้วซึ่ง sensor เชื่อมต่ออยู่

address

ที่อยู่ I2C 7 บิตของอุปกรณ์ ค่าเริ่มต้นคือ 0x5C; บางบอร์ดดึงพิน SDO ขึ้น high ซึ่งเลือก 0x5D

oneshot

หาก True อุปกรณ์จะเริ่มต้นในโหมด one-shot และการเรียกแต่ละครั้งไปยัง pressure() หรือ temperature() จะกระตุ้นการแปลงใหม่และรอให้เสร็จสิ้น หาก False ODR จะถูกตั้งเป็น 1 Hz และการอ่านค่าจะคืนค่าตัวอย่างต่อเนื่องล่าสุด

set_oneshot_mode(oneshot: bool) None

สลับอุปกรณ์ระหว่างโหมดการรับข้อมูลแบบต่อเนื่องและ one-shot ในขณะทำงาน อัปเดตฟิลด์ ODR ของ CTRL_REG1 ตามนั้น

pressure() float

คืนค่าความดันบรรยากาศสัมบูรณ์ในหน่วยเฮกโตปาสกาล (hPa) ในโหมด one-shot จะกระตุ้นการแปลงใหม่และบล็อกจนกว่าแฟล็ก data-ready สำหรับความดันจะถูกตั้ง

temperature() float

คืนค่าอุณหภูมิของชิปในหน่วยองศาเซลเซียส ในโหมด one-shot จะกระตุ้นการแปลงใหม่และบล็อกจนกว่าแฟล็ก data-ready สำหรับอุณหภูมิจะถูกตั้ง

altitude() float

คืนค่าระดับความสูงโดยประมาณในหน่วยเมตรที่ได้มาจากการอ่านค่าความดันและอุณหภูมิปัจจุบันโดยใช้สูตรบรรยากาศนานาชาติอ้างอิงกับความดันระดับน้ำทะเล 1013.25 hPa