ds18x20 — upravljački program za DS18x20 senzor temperature

Modul ds18x20 pruža upravljački program za Maxim/Dallas DS18B20, DS18S20 i DS1822 1-Wire digitalne senzore temperature. Izgrađen je na vrhu modula onewire i podržava više senzora koji dijele jednu sabirnicu.

Primjer:

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))

Konstruira DS18x20 upravljački program vezan na danu onewire.OneWire sabirnicu. Više DS18x20 senzora može dijeliti istu sabirnicu.

class ds18x20.DS18X20(onewire: OneWire)

Construct a DS18x20 driver bound to the given onewire.OneWire bus. Multiple DS18x20 sensors may share the same bus.

scan() list[bytearray]

Pretražuje temeljnu 1-Wire sabirnicu i vraća listu ROM kodova koji odgovaraju uređajima iz obitelji DS18x20. Vraćaju se samo ROM-ovi čiji je kod obitelji 0x10 (DS18S20), 0x22 (DS1822) ili 0x28 (DS18B20); ostali 1-Wire uređaji na istoj sabirnici se filtriraju.

convert_temp() None

Izdaje naredbu za pretvorbu temperature svim DS18x20 senzorima na sabirnici istovremeno (koristeći SKIP ROM). Nakon poziva ove metode morate pričekati da se pretvorba dovrši (do 750 ms pri zadanoj 12-bitnoj razlučivosti) prije poziva read_temp().

read_scratch(rom: bytes | bytearray) bytearray

Čita 9-bajtni scratchpad s uređaja adresiranog s rom i vraća ga kao bytearray. CRC scratchpada se provjerava; pokreće Exception s porukom "CRC error" pri neslaganju CRC-a.

Napomena

Vraćeni međuspremnik je interni međuspremnik upravljačkog programa i prepisuje se naknadnim pozivima.

write_scratch(rom: bytes | bytearray, buf: bytes | bytearray) None

Zapisuje 3 bajta u scratchpad uređaja adresiranog s rom. buf mora sadržavati vrijednosti okidača visokog alarma (TH), okidača niskog alarma (TL) i konfiguracijskog registra.

read_temp(rom: bytes | bytearray) float

Čita najnoviju pretvorenu temperaturu s uređaja adresiranog s rom i vraća je u stupnjevima Celzija kao float. Obrađuje kodiranja i DS18S20 (kod obitelji 0x10) i DS18B20 / DS1822 (kodovi obitelji 0x28 / 0x22), uključujući negativne temperature.

Pozovite convert_temp() i pričekajte da pretvorba završi prije poziva ove metode.