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.OneWirebus. 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) ili0x28(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ćeExceptions 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 obitelji0x10) i DS18B20 / DS1822 (kodovi obitelji0x28/0x22), uključujući negativne temperature.Pozovite
convert_temp()i pričekajte da pretvorba završi prije poziva ove metode.