onewire — 1-Wire veri yolu protokolü¶
onewire modülü, DS18x20 sıcaklık sensörü gibi cihazlar tarafından kullanılan 1-Wire veri yolu yönetici (master) protokolünü uygular. Paylaşılan veri yolundaki bir veya daha fazla bağımlı (slave) cihazla iletişim kurmak için açık-drenaj olarak yapılandırılmış tek bir machine.Pin kullanır.
Örnek:
from machine import Pin
from onewire import OneWire
ow = OneWire(Pin("P7"))
devices = ow.scan()
for rom in devices:
print(rom)
Sınıflar¶
- class onewire.OneWire(pin: machine.Pin)¶
Verilen
machine.Pinüzerinde bir 1-Wire veri yolu yöneticisi oluşturur. Pin, otomatik olarak yukarı çekme dirençli açık-drenaj olarak yapılandırılır.ROM komut sabitleri:
- SEARCH_ROM: int¶
Search ROM komutu (
0xF0). Veri yolundaki cihazları keşfetmek içinscan()tarafından dahili olarak kullanılır.
- MATCH_ROM: int¶
Match ROM komutu (
0x55). Belirli bir cihazı 64-bit ROM koduyla adreslemek içinselect_rom()tarafından dahili olarak kullanılır.
- SKIP_ROM: int¶
Skip ROM komutu (
0xCC). ROM eşleştirmesini atlayarak veri yolundaki tüm cihazları aynı anda adresler.
Veri yolu sıfırlama:
- reset(required: bool = False) bool¶
Veri yolunda bir sıfırlama darbesi gönderir. En az bir bağımlı cihaz bir varlık darbesiyle yanıt verirse
True, aksi takdirdeFalsedöndürür. requiredTrueise ve hiçbir cihaz yanıt vermezseOneWireErroryükseltir.
Bit/bayt G/Ç:
- readinto(buf: bytearray) None¶
Veri yolundan
len(buf)bayt okur ve verilen önceden ayrılmış arabelleğe yazar.
Cihaz adresleme:
- select_rom(rom: bytes | bytearray) None¶
64-bit ROM kodu rom (8 baytlık bir arabellek) içinde bulunan cihazı adreslemek için bir sıfırlama ardından bir MATCH ROM komutu gönderir.
- scan() list[bytearray]¶
Veri yolunu arar ve 8 baytlık ROM kodlarının bir listesini döndürür (tespit edilen her cihaz için bir
bytearray). Hiçbir cihaz yoksa boş bir liste döndürür.
Döngüsel artıklık denetimi (CRC):
İstisnalar¶
- exception onewire.OneWireError¶
Bir 1-Wire işlemi başarısız olduğunda yükseltilir. Şu anda, required
Trueolduğunda ve hiçbir bağımlı cihaz sıfırlama darbesine yanıt vermediğindeOneWire.reset()tarafından yükseltilir.