ds18x20 — DS18x20 온도 센서 드라이버¶
ds18x20 모듈은 Maxim/Dallas DS18B20, DS18S20, DS1822 1-Wire 디지털 온도 센서를 위한 드라이버를 제공합니다. onewire 모듈 위에 구축되어 있으며, 단일 버스를 공유하는 여러 센서를 지원합니다.
예제:
import time
from machine import Pin
from onewire import OneWire
from ds18x20 import DS18X20
ds = DS18X20(OneWire(Pin("P7")))
roms = ds.scan()
ds.convert_temp()
time.sleep_ms(750)
for rom in roms:
print(rom, ds.read_temp(rom))
클래스¶
- class ds18x20.DS18X20(onewire: OneWire)¶
주어진
onewire.OneWire버스에 바인딩된 DS18x20 드라이버를 생성합니다. 여러 DS18x20 센서가 동일한 버스를 공유할 수 있습니다.- scan() list[bytearray]¶
기저 1-Wire 버스를 검색하여 DS18x20 계열 장치에 해당하는 ROM 코드 목록을 반환합니다. 계열 코드가
0x10(DS18S20),0x22(DS1822), 또는0x28(DS18B20)인 ROM만 반환되며, 동일한 버스의 다른 1-Wire 장치는 필터링됩니다.
- convert_temp() None¶
버스에 있는 모든 DS18x20 센서에 동시에(SKIP ROM 사용) 온도 변환 명령을 보냅니다. 이 메서드를 호출한 후에는
read_temp()를 호출하기 전에 변환이 완료될 때까지(기본 12비트 해상도에서 최대 750ms) 기다려야 합니다.
- read_scratch(rom: bytes | bytearray) bytearray¶
rom으로 주소가 지정된 장치에서 9바이트 스크래치패드를 읽어
bytearray로 반환합니다. 스크래치패드 CRC가 검증되며, CRC 불일치 시"CRC error"메시지와 함께Exception을 발생시킵니다.참고
반환되는 버퍼는 드라이버의 내부 버퍼이며 이후 호출에 의해 덮어쓰입니다.
- write_scratch(rom: bytes | bytearray, buf: bytes | bytearray) None¶
rom으로 주소가 지정된 장치의 스크래치패드에 3바이트를 씁니다. buf는 높은 경보 트리거(TH), 낮은 경보 트리거(TL), 그리고 설정 레지스터 값을 포함해야 합니다.
- read_temp(rom: bytes | bytearray) float¶
rom으로 주소가 지정된 장치에서 가장 최근에 변환된 온도를 읽어 섭씨 단위의
float로 반환합니다. DS18S20(계열 코드0x10)과 DS18B20 / DS1822(계열 코드0x28/0x22) 인코딩을 모두 처리하며, 음수 온도도 포함됩니다.convert_temp()를 호출하고 이 메서드를 호출하기 전에 변환이 끝날 때까지 기다리세요.