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.OneWirebuszhoz 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) vagy0x28(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
bytearrayformában adja vissza. A scratchpad CRC-je ellenőrzésre kerül; CRC-eltérés eseténExceptionkivé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
floatformában adja vissza Celsius-fokban. Mind a DS18S20 (0x10családkód), mind a DS18B20 / DS1822 (0x28/0x22csalá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.