ds18x20 — DS18x20 sıcaklık sensörü sürücüsü#

ds18x20 modülü, Maxim/Dallas DS18B20, DS18S20 ve DS1822 1-Wire dijital sıcaklık sensörleri için bir sürücü sağlar. onewire modülünün üzerine inşa edilmiştir ve tek bir veri yolunu paylaşan birden çok sensörü destekler.

Örnek:

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

Sınıflar#

class ds18x20.DS18X20(onewire: OneWire)#

Verilen onewire.OneWire veri yoluna bağlı bir DS18x20 sürücüsü oluşturur. Birden çok DS18x20 sensörü aynı veri yolunu paylaşabilir.

scan() list[bytearray]#

Alttaki 1-Wire veri yolunu arar ve DS18x20 ailesindeki cihazlara karşılık gelen ROM kodlarının bir listesini döndürür. Yalnızca aile kodu 0x10 (DS18S20), 0x22 (DS1822) veya 0x28 (DS18B20) olan ROM’lar döndürülür; aynı veri yolundaki diğer 1-Wire cihazları filtrelenip dışlanır.

convert_temp() None#

Veri yolundaki tüm DS18x20 sensörlerine aynı anda (SKIP ROM kullanarak) bir sıcaklık dönüşümü komutu verir. Bu yöntemi çağırdıktan sonra, read_temp() çağırmadan önce dönüşümün tamamlanmasını beklemelisiniz (varsayılan 12 bitlik çözünürlükte en fazla 750 ms).

read_scratch(rom: bytes | bytearray) bytearray#

rom ile adreslenen cihazdan 9 baytlık scratchpad’i okur ve onu bir bytearray olarak döndürür. Scratchpad CRC’si doğrulanır; CRC uyuşmazlığı durumunda "CRC error" mesajıyla Exception hatası verir.

Not

Döndürülen tampon, sürücünün dahili tamponudur ve sonraki çağrılarla üzerine yazılır.

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

rom ile adreslenen cihazın scratchpad’ine 3 bayt yazar. buf, yüksek alarm tetikleyicisi (TH), düşük alarm tetikleyicisi (TL) ve yapılandırma yazmacı değerlerini içermelidir.

read_temp(rom: bytes | bytearray) float#

rom ile adreslenen cihazdan en son dönüştürülen sıcaklığı okur ve santigrat derece cinsinden bir float olarak döndürür. Negatif sıcaklıklar dahil olmak üzere hem DS18S20 (aile kodu 0x10) hem de DS18B20 / DS1822 (aile kodları 0x28 / 0x22) kodlamalarını işler.

Bu yöntemi çağırmadan önce convert_temp() çağırın ve dönüşümün bitmesini bekleyin.