onewire — 1-Wire 버스 프로토콜¶
onewire 모듈은 DS18x20 온도 센서와 같은 장치에서 사용하는 1-Wire 버스 마스터 프로토콜을 구현합니다. 공유 버스에 연결된 하나 이상의 슬레이브 장치와 통신하기 위해 오픈 드레인으로 구성된 단일 machine.Pin 을 사용합니다.
예제:
from machine import Pin
from onewire import OneWire
ow = OneWire(Pin("P7"))
devices = ow.scan()
for rom in devices:
print(rom)
클래스¶
- class onewire.OneWire(pin: machine.Pin)¶
주어진
machine.Pin에 1-Wire 버스 마스터를 생성합니다. 핀은 풀업이 있는 오픈 드레인으로 자동 구성됩니다.ROM 명령 상수:
- MATCH_ROM: int¶
ROM 매칭 명령 (
0x55). 64비트 ROM 코드로 특정 장치를 지정하기 위해select_rom()에서 내부적으로 사용됩니다.
버스 리셋:
- reset(required: bool = False) bool¶
버스에 리셋 펄스를 발행합니다. 적어도 하나의 슬레이브 장치가 존재 펄스로 응답하면
True를, 그렇지 않으면False를 반환합니다. required 가True이고 응답하는 장치가 없으면OneWireError를 발생시킵니다.
비트/바이트 I/O:
장치 주소 지정:
- select_rom(rom: bytes | bytearray) None¶
리셋을 발행한 다음 MATCH ROM 명령을 실행하여 64비트 ROM 코드가 rom (8바이트 버퍼)에 있는 장치를 지정합니다.
순환 중복 검사:
예외¶
- exception onewire.OneWireError¶
1-Wire 작업이 실패하면 발생합니다. 현재는 required 가
True이고 리셋 펄스에 응답하는 슬레이브가 없을 때OneWire.reset()에서 발생합니다.