onewire — 1-Wire-väyläprotokolla¶
onewire-moduuli toteuttaa 1-Wire-väylän isäntäprotokollan, jota käyttävät esimerkiksi DS18x20-lämpötilasensori. Se käyttää yhtä avokollektoritilaan (open-drain) määriteltyä machine.Pin-nastaa kommunikoidakseen yhden tai useamman orjalaitteen kanssa jaetulla väylällä.
Esimerkki:
from machine import Pin
from onewire import OneWire
ow = OneWire(Pin("P7"))
devices = ow.scan()
for rom in devices:
print(rom)
Luokat¶
- class onewire.OneWire(pin: machine.Pin)¶
Luo 1-Wire-väylän isäntä annetulle
machine.Pin-nastalle. Nasta määritellään automaattisesti avokollektoritilaan ylösvetovastuksella.ROM-komentovakiot:
- SEARCH_ROM: int¶
Search ROM -komento (
0xF0).scan()käyttää sitä sisäisesti löytääkseen väylän laitteet.
- MATCH_ROM: int¶
Match ROM -komento (
0x55).select_rom()käyttää sitä sisäisesti osoittaakseen tietyn laitteen sen 64-bittisellä ROM-koodilla.
- SKIP_ROM: int¶
Skip ROM -komento (
0xCC). Osoittaa kaikki väylän laitteet samanaikaisesti ohittaen ROM-täsmäytyksen.
Väylän nollaus:
- reset(required: bool = False) bool¶
Lähettää nollauspulssin väylälle. Palauttaa
True, jos vähintään yksi orjalaite vastasi läsnäolopulssilla, muutoinFalse. Jos required onTrueeikä yksikään laite vastaa, nostaaOneWireError-poikkeuksen.
Bitti-/tavu-I/O:
Laitteen osoitus:
- select_rom(rom: bytes | bytearray) None¶
Lähettää nollauksen ja sen jälkeen MATCH ROM -komennon osoittaakseen laitteen, jonka 64-bittinen ROM-koodi on rom-parametrissa (8-tavuinen puskuri).
- scan() list[bytearray]¶
Etsii väylältä laitteet ja palauttaa listan 8-tavuisia ROM-koodeja (yksi
bytearraykutakin havaittua laitetta kohti). Palauttaa tyhjän listan, jos laitteita ei ole.
Syklinen ylijäämätarkistus (CRC):
Poikkeukset¶
- exception onewire.OneWireError¶
Nostetaan, kun 1-Wire-operaatio epäonnistuu. Tällä hetkellä
OneWire.reset()nostaa sen, kun required onTrueeikä yksikään orjalaite vastaa nollauspulssiin.