onewire — protocolo de barramento 1-Wire¶
O módulo onewire implementa o protocolo mestre do barramento 1-Wire usado por dispositivos como o sensor de temperatura DS18x20. Ele utiliza um único machine.Pin configurado como dreno aberto (open-drain) para se comunicar com um ou mais dispositivos escravos no barramento compartilhado.
Exemplo:
from machine import Pin
from onewire import OneWire
ow = OneWire(Pin("P7"))
devices = ow.scan()
for rom in devices:
print(rom)
Classes¶
- class onewire.OneWire(pin: machine.Pin)¶
Constrói um mestre de barramento 1-Wire no
machine.Pinfornecido. O pino é automaticamente configurado como dreno aberto (open-drain) com pull-up.Constantes de comando ROM:
- SEARCH_ROM: int¶
Comando Search ROM (
0xF0). Usado internamente porscan()para descobrir dispositivos no barramento.
- MATCH_ROM: int¶
Comando Match ROM (
0x55). Usado internamente porselect_rom()para endereçar um dispositivo específico pelo seu código ROM de 64 bits.
- SKIP_ROM: int¶
Comando Skip ROM (
0xCC). Endereça todos os dispositivos do barramento simultaneamente, pulando a correspondência de ROM.
Reset do barramento:
- reset(required: bool = False) bool¶
Emite um pulso de reset no barramento. Retorna
Truese ao menos um dispositivo escravo respondeu com um pulso de presença, caso contrário retornaFalse. Se required forTruee nenhum dispositivo responder, lançaOneWireError.
E/S de bits/bytes:
Endereçamento de dispositivos:
- select_rom(rom: bytes | bytearray) None¶
Emite um reset seguido de um comando MATCH ROM para endereçar o dispositivo cujo código ROM de 64 bits está em rom (um buffer de 8 bytes).
- scan() list[bytearray]¶
Pesquisa o barramento e retorna uma lista de códigos ROM de 8 bytes (um
bytearraypor dispositivo detectado). Retorna uma lista vazia se nenhum dispositivo estiver presente.
Verificação de redundância cíclica:
Exceções¶
- exception onewire.OneWireError¶
Lançada quando uma operação 1-Wire falha. Atualmente lançada por
OneWire.reset()quando required éTruee nenhum escravo responde ao pulso de reset.