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.OneWireveri 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) veya0x28(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
bytearrayolarak döndürür. Scratchpad CRC’si doğrulanır; CRC uyuşmazlığı durumunda"CRC error"mesajıylaExceptionhatası 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
floatolarak döndürür. Negatif sıcaklıklar dahil olmak üzere hem DS18S20 (aile kodu0x10) 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.