onewire — 1-Wire-busprotocol¶
De module onewire implementeert het master-protocol van de 1-Wire-bus dat wordt gebruikt door apparaten zoals de DS18x20-temperatuursensor. Het gebruikt een enkele machine.Pin die als open-drain is geconfigureerd om met een of meer slave-apparaten op de gedeelde bus te communiceren.
Voorbeeld:
from machine import Pin
from onewire import OneWire
ow = OneWire(Pin("P7"))
devices = ow.scan()
for rom in devices:
print(rom)
Klassen¶
- class onewire.OneWire(pin: machine.Pin)¶
Construeer een 1-Wire-busmaster op de opgegeven
machine.Pin. De pin wordt automatisch als open-drain met een pull-up geconfigureerd.ROM-commandoconstanten:
- SEARCH_ROM: int¶
Search ROM-commando (
0xF0). Wordt intern gebruikt doorscan()om apparaten op de bus te ontdekken.
- MATCH_ROM: int¶
Match ROM-commando (
0x55). Wordt intern gebruikt doorselect_rom()om een specifiek apparaat te adresseren via zijn 64-bits ROM-code.
- SKIP_ROM: int¶
Skip ROM-commando (
0xCC). Adresseert alle apparaten op de bus tegelijk en slaat de ROM-matching over.
Bus-reset:
- reset(required: bool = False) bool¶
Geef een resetpuls op de bus af. Geeft
Trueterug als ten minste één slave-apparaat met een aanwezigheidspuls heeft gereageerd, andersFalse. Als required gelijk is aanTrueen geen enkel apparaat reageert, wordtOneWireErroropgeworpen.
Bit/byte-I/O:
- readinto(buf: bytearray) None¶
Lees
len(buf)bytes van de bus in de opgegeven vooraf gealloceerde buffer.
Apparaatadressering:
- select_rom(rom: bytes | bytearray) None¶
Geef een reset af, gevolgd door een MATCH ROM-commando, om het apparaat te adresseren waarvan de 64-bits ROM-code zich in rom bevindt (een buffer van 8 bytes).
- scan() list[bytearray]¶
Doorzoek de bus en geef een lijst van 8-byte ROM-codes terug (één
bytearrayper gedetecteerd apparaat). Geeft een lege lijst terug als er geen apparaten aanwezig zijn.
Cyclische redundantiecontrole:
Uitzonderingen¶
- exception onewire.OneWireError¶
Wordt opgeworpen wanneer een 1-Wire-operatie mislukt. Wordt momenteel opgeworpen door
OneWire.reset()wanneer required gelijk is aanTrueen geen enkele slave op de resetpuls reageert.