ds18x20 — DS18x20 hőmérséklet-érzékelő illesztőprogram

A ds18x20 modul illesztőprogramot biztosít a Maxim/Dallas DS18B20, DS18S20 és DS1822 1-Wire digitális hőmérséklet-érzékelőkhöz. Az onewire modulra épül, és több, egyetlen buszon osztozó érzékelőt is támogat.

Példa:

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

Osztályok

class ds18x20.DS18X20(onewire: OneWire)

Létrehoz egy DS18x20 illesztőprogramot, amely a megadott onewire.OneWire buszhoz kötődik. Több DS18x20 érzékelő osztozhat ugyanazon a buszon.

scan() list[bytearray]

Átkutatja az alapul szolgáló 1-Wire buszt, és visszaad egy listát a DS18x20 családba tartozó eszközöknek megfelelő ROM kódokról. Csak azok a ROM-ok térnek vissza, amelyek családkódja 0x10 (DS18S20), 0x22 (DS1822) vagy 0x28 (DS18B20); az ugyanazon a buszon lévő egyéb 1-Wire eszközök kiszűrésre kerülnek.

convert_temp() None

Hőmérséklet-átalakítási parancsot ad ki a buszon lévő összes DS18x20 érzékelőnek egyidejűleg (SKIP ROM használatával). E metódus meghívása után meg kell várnod, amíg az átalakítás befejeződik (az alapértelmezett 12 bites felbontásnál legfeljebb 750 ms), mielőtt meghívnád a read_temp() metódust.

read_scratch(rom: bytes | bytearray) bytearray

Beolvassa a 9 bájtos scratchpadot a rom által megcímzett eszközről, és bytearray formában adja vissza. A scratchpad CRC-je ellenőrzésre kerül; CRC-eltérés esetén Exception kivételt vált ki a "CRC error" üzenettel.

Megjegyzés

A visszaadott puffer az illesztőprogram belső puffere, amelyet a későbbi hívások felülírnak.

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

3 bájtot ír a rom által megcímzett eszköz scratchpadjába. A buf-nak tartalmaznia kell a magas riasztási küszöb (TH), az alacsony riasztási küszöb (TL) és a konfigurációs regiszter értékeit.

read_temp(rom: bytes | bytearray) float

Beolvassa a legutóbb átalakított hőmérsékletet a rom által megcímzett eszközről, és float formában adja vissza Celsius-fokban. Mind a DS18S20 (0x10 családkód), mind a DS18B20 / DS1822 (0x28 / 0x22 családkódok) kódolásait kezeli, beleértve a negatív hőmérsékleteket is.

Hívd meg a convert_temp() metódust, és várd meg az átalakítás befejezését, mielőtt meghívnád ezt a metódust.