onewire — 1-Wire-bussprotokoll¶
Modulen onewire implementerar masterprotokollet för 1-Wire-bussen som används av enheter som temperatursensorn DS18x20. Den använder ett enda machine.Pin konfigurerat som open-drain för att kommunicera med en eller flera slavenheter på den delade bussen.
Exempel:
from machine import Pin
from onewire import OneWire
ow = OneWire(Pin("P7"))
devices = ow.scan()
for rom in devices:
print(rom)
Klasser¶
- class onewire.OneWire(pin: machine.Pin)¶
Skapar en 1-Wire-bussmaster på det angivna
machine.Pin. Stiftet konfigureras automatiskt som open-drain med en pull-up.ROM-kommandokonstanter:
- SEARCH_ROM: int¶
Search ROM-kommandot (
0xF0). Används internt avscan()för att upptäcka enheter på bussen.
- MATCH_ROM: int¶
Match ROM-kommandot (
0x55). Används internt avselect_rom()för att adressera en specifik enhet via dess 64-bitars ROM-kod.
- SKIP_ROM: int¶
Skip ROM-kommandot (
0xCC). Adresserar alla enheter på bussen samtidigt och hoppar över ROM-matchning.
Bussåterställning:
- reset(required: bool = False) bool¶
Skickar en återställningspuls på bussen. Returnerar
Trueom minst en slavenhet svarade med en närvaropuls, annarsFalse. Om required ärTrueoch ingen enhet svarar, kastasOneWireError.
Bit/byte-I/O:
- readinto(buf: bytearray) None¶
Läser
len(buf)byte från bussen in i den angivna förallokerade bufferten.
Enhetsadressering:
- select_rom(rom: bytes | bytearray) None¶
Skickar en återställning följd av ett MATCH ROM-kommando för att adressera enheten vars 64-bitars ROM-kod finns i rom (en 8-byte-buffert).
- scan() list[bytearray]¶
Söker igenom bussen och returnerar en lista med 8-byte ROM-koder (en
bytearrayper upptäckt enhet). Returnerar en tom lista om inga enheter finns.
Cyklisk redundanskontroll:
Undantag¶
- exception onewire.OneWireError¶
Kastas när en 1-Wire-operation misslyckas. Kastas för närvarande av
OneWire.reset()när required ärTrueoch ingen slav svarar på återställningspulsen.