onewire — protokol sabirnice 1-Wire¶
Modul onewire implementira master protokol sabirnice 1-Wire koji koriste uređaji poput senzora temperature DS18x20. Koristi jedan machine.Pin konfiguriran kao open-drain za komunikaciju s jednim ili više podređenih uređaja na zajedničkoj sabirnici.
Primjer:
from machine import Pin
from onewire import OneWire
ow = OneWire(Pin("P7"))
devices = ow.scan()
for rom in devices:
print(rom)
Klase¶
- class onewire.OneWire(pin: machine.Pin)¶
Stvara master sabirnice 1-Wire na zadanom
machine.Pin. Pin se automatski konfigurira kao open-drain s pull-up otpornikom.Konstante ROM naredbi:
- SEARCH_ROM: int¶
Naredba Search ROM (
0xF0). Interno je koristiscan()za otkrivanje uređaja na sabirnici.
- MATCH_ROM: int¶
Naredba Match ROM (
0x55). Interno je koristiselect_rom()za adresiranje određenog uređaja prema njegovom 64-bitnom ROM kodu.
- SKIP_ROM: int¶
Naredba Skip ROM (
0xCC). Istovremeno adresira sve uređaje na sabirnici, preskačući podudaranje ROM koda.
Resetiranje sabirnice:
- reset(required: bool = False) bool¶
Šalje reset impuls na sabirnicu. Vraća
Trueako je barem jedan podređeni uređaj odgovorio impulsom prisutnosti, inačeFalse. Ako je required postavljen naTruei nijedan uređaj ne odgovori, podižeOneWireError.
Bitni/bajtni U/I:
- readinto(buf: bytearray) None¶
Čita
len(buf)bajtova sa sabirnice u zadani unaprijed alocirani međuspremnik.
Adresiranje uređaja:
- select_rom(rom: bytes | bytearray) None¶
Šalje reset nakon kojeg slijedi naredba MATCH ROM za adresiranje uređaja čiji se 64-bitni ROM kod nalazi u rom (8-bajtni međuspremnik).
- scan() list[bytearray]¶
Pretražuje sabirnicu i vraća popis 8-bajtnih ROM kodova (po jedan
bytearrayza svaki otkriveni uređaj). Vraća prazan popis ako nema prisutnih uređaja.
Ciklička provjera redundancije:
Iznimke¶
- exception onewire.OneWireError¶
Podiže se kada operacija 1-Wire ne uspije. Trenutno je podiže
OneWire.reset()kada je required postavljen naTruei nijedan podređeni uređaj ne odgovori na reset impuls.