onewire — protocollo del bus 1-Wire¶
Il modulo onewire implementa il protocollo master del bus 1-Wire utilizzato da dispositivi come il sensore di temperatura DS18x20. Usa un singolo machine.Pin configurato come open-drain per comunicare con uno o più dispositivi slave sul bus condiviso.
Esempio:
from machine import Pin
from onewire import OneWire
ow = OneWire(Pin("P7"))
devices = ow.scan()
for rom in devices:
print(rom)
Classi¶
- class onewire.OneWire(pin: machine.Pin)¶
Costruisce un master del bus 1-Wire sul
machine.Pinspecificato. Il pin viene configurato automaticamente come open-drain con un pull-up.Costanti dei comandi ROM:
- SEARCH_ROM: int¶
Comando Search ROM (
0xF0). Usato internamente dascan()per rilevare i dispositivi sul bus.
- MATCH_ROM: int¶
Comando Match ROM (
0x55). Usato internamente daselect_rom()per indirizzare uno specifico dispositivo tramite il suo codice ROM a 64 bit.
- SKIP_ROM: int¶
Comando Skip ROM (
0xCC). Indirizza simultaneamente tutti i dispositivi sul bus, saltando la corrispondenza ROM.
Reset del bus:
- reset(required: bool = False) bool¶
Genera un impulso di reset sul bus. Restituisce
Truese almeno un dispositivo slave ha risposto con un impulso di presenza, altrimentiFalse. Se required èTruee nessun dispositivo risponde, sollevaOneWireError.
I/O di bit/byte:
Indirizzamento dei dispositivi:
- select_rom(rom: bytes | bytearray) None¶
Genera un reset seguito da un comando MATCH ROM per indirizzare il dispositivo il cui codice ROM a 64 bit è contenuto in rom (un buffer di 8 byte).
- scan() list[bytearray]¶
Esegue una ricerca sul bus e restituisce una lista di codici ROM da 8 byte (un
bytearrayper ogni dispositivo rilevato). Restituisce una lista vuota se non è presente alcun dispositivo.
Controllo di ridondanza ciclica:
Eccezioni¶
- exception onewire.OneWireError¶
Sollevata quando un’operazione 1-Wire fallisce. Attualmente sollevata da
OneWire.reset()quando required èTruee nessun dispositivo slave risponde all’impulso di reset.