onewire — פרוטוקול אפיק 1-Wire¶
המודול onewire מממש את פרוטוקול ה-master של אפיק 1-Wire, המשמש התקנים כגון חיישן הטמפרטורה DS18x20. הוא משתמש ב-machine.Pin יחיד המוגדר כ-open-drain כדי לתקשר עם התקן עבד אחד או יותר על האפיק המשותף.
דוגמה:
from machine import Pin
from onewire import OneWire
ow = OneWire(Pin("P7"))
devices = ow.scan()
for rom in devices:
print(rom)
מחלקות¶
- class onewire.OneWire(pin: machine.Pin)¶
בניית master של אפיק 1-Wire על ה-
machine.Pinהנתון. הפין מוגדר אוטומטית כ-open-drain עם נגד pull-up.קבועי פקודות ROM:
- MATCH_ROM: int¶
פקודת Match ROM (
0x55). משמשת באופן פנימי אתselect_rom()כדי לפנות להתקן מסוים לפי קוד ה-ROM שלו בן 64 הסיביות.
איפוס אפיק:
- reset(required: bool = False) bool¶
שליחת פולס איפוס על האפיק. מחזירה
Trueאם לפחות התקן עבד אחד הגיב בפולס נוכחות, אחרתFalse. אם required הואTrueואף התקן אינו מגיב, נזרקתOneWireError.
קלט/פלט של סיביות/בתים:
פנייה להתקנים:
- select_rom(rom: bytes | bytearray) None¶
שליחת איפוס ולאחריו פקודת MATCH ROM כדי לפנות להתקן שקוד ה-ROM שלו בן 64 הסיביות נמצא ב-rom (חוצץ (buffer) בן 8 בתים).
- scan() list[bytearray]¶
חיפוש באפיק והחזרת רשימה של קודי ROM בני 8 בתים (
bytearrayאחד לכל התקן שזוהה). מחזירה רשימה ריקה אם אין התקנים נוכחים.
בדיקת יתירות מחזורית:
חריגות¶
- exception onewire.OneWireError¶
נזרקת כאשר פעולת 1-Wire נכשלת. כיום נזרקת על ידי
OneWire.reset()כאשר required הואTrueואף התקן עבד אינו מגיב לפולס האיפוס.