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))
Создаёт драйвер DS18x20, привязанный к заданной шине onewire.OneWire. Несколько датчиков DS18x20 могут использовать одну и ту же шину.¶
- class ds18x20.DS18X20(onewire: OneWire)¶
Construct a DS18x20 driver bound to the given
onewire.OneWirebus. Multiple DS18x20 sensors may share the same bus.- scan() list[bytearray]¶
Выполняет поиск по нижележащей шине 1-Wire и возвращает список ROM-кодов, соответствующих устройствам семейства DS18x20. Возвращаются только те ROM, у которых код семейства равен
0x10(DS18S20),0x22(DS1822) или0x28(DS18B20); другие устройства 1-Wire на той же шине отфильтровываются.
- convert_temp() None¶
Отправляет команду преобразования температуры всем датчикам DS18x20 на шине одновременно (используя SKIP ROM). После вызова этого метода вы должны дождаться завершения преобразования (до 750 мс при стандартном 12-битном разрешении) перед вызовом
read_temp().
- read_scratch(rom: bytes | bytearray) bytearray¶
Считывает 9-байтовый scratchpad с устройства, адресуемого rom, и возвращает его в виде
bytearray. Контрольная сумма CRC scratchpad проверяется; возбуждаетExceptionс сообщением"CRC error"при несовпадении CRC.Примечание
Возвращаемый буфер является внутренним буфером драйвера и перезаписывается последующими вызовами.
- write_scratch(rom: bytes | bytearray, buf: bytes | bytearray) None¶
Записывает 3 байта в scratchpad устройства, адресуемого rom. buf должен содержать значения верхнего порога срабатывания тревоги (TH), нижнего порога срабатывания тревоги (TL) и регистра конфигурации.
- read_temp(rom: bytes | bytearray) float¶
Считывает самую последнюю преобразованную температуру с устройства, адресуемого rom, и возвращает её в градусах Цельсия в виде
float. Обрабатывает кодировки как DS18S20 (код семейства0x10), так и DS18B20 / DS1822 (коды семейства0x28/0x22), включая отрицательные температуры.Вызовите
convert_temp()и дождитесь завершения преобразования перед вызовом этого метода.