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()והמתינו לסיום ההמרה לפני הקריאה למתודה זו.