ds18x20 — מנהל התקן לחיישן טמפרטורה DS18x20

המודול ds18x20 מספק מנהל התקן עבור חיישני הטמפרטורה הדיגיטליים מסוג 1-Wire של Maxim/Dallas מדגמי DS18B20, DS18S20 ו-DS1822. הוא בנוי על גבי המודול onewire ותומך בריבוי חיישנים החולקים אפיק יחיד.

דוגמה:

import time
from machine import Pin
from onewire import OneWire
from ds18x20 import DS18X20

ds = DS18X20(OneWire(Pin("P7")))
roms = ds.scan()

ds.convert_temp()
time.sleep_ms(750)
for rom in roms:
    print(rom, ds.read_temp(rom))

מחלקות

class ds18x20.DS18X20(onewire: OneWire)

בניית מנהל התקן DS18x20 הקשור לאפיק onewire.OneWire הנתון. מספר חיישני DS18x20 יכולים לחלוק את אותו אפיק.

scan() list[bytearray]

סורקת את אפיק ה-1-Wire הבסיסי ומחזירה רשימה של קודי ROM המתאימים להתקנים ממשפחת DS18x20. רק קודי ROM שקוד המשפחה שלהם הוא 0x10 (DS18S20), 0x22 (DS1822) או 0x28 (DS18B20) מוחזרים; התקני 1-Wire אחרים על אותו אפיק מסוננים החוצה.

convert_temp() None

מנפיקה פקודת המרת טמפרטורה ל-כל חיישני ה-DS18x20 על האפיק בו-זמנית (באמצעות SKIP ROM). לאחר הקריאה למתודה זו עליכם להמתין להשלמת ההמרה (עד 750 אלפיות שנייה ברזולוציית ברירת המחדל של 12 סיביות) לפני הקריאה ל-read_temp().

read_scratch(rom: bytes | bytearray) bytearray

קוראת את ה-scratchpad בן 9 הבתים מההתקן המכותב על ידי rom ומחזירה אותו כ-bytearray. ה-CRC של ה-scratchpad מאומת; מעלה Exception עם ההודעה "CRC error" במקרה של אי-התאמת CRC.

הערה

החוצץ המוחזר הוא החוצץ הפנימי של מנהל ההתקן ונדרס על ידי קריאות עוקבות.

write_scratch(rom: bytes | bytearray, buf: bytes | bytearray) None

כותבת 3 בתים אל ה-scratchpad של ההתקן המכותב על ידי rom. buf חייב להכיל את ערכי טריגר אזעקת הגבול העליון (TH), טריגר אזעקת הגבול התחתון (TL) ואוגר התצורה.

read_temp(rom: bytes | bytearray) float

קוראת את הטמפרטורה שהומרה לאחרונה מההתקן המכותב על ידי rom ומחזירה אותה במעלות צלזיוס כ-float. מטפלת הן בקידוד DS18S20 (קוד משפחה 0x10) והן בקידוד DS18B20 / DS1822 (קודי משפחה 0x28 / 0x22), כולל טמפרטורות שליליות.

קראו ל-convert_temp() והמתינו לסיום ההמרה לפני הקריאה למתודה זו.