ds18x20 --- driver sensor suhu DS18x20

Modul ds18x20 menyediakan driver untuk sensor suhu digital 1-Wire Maxim/Dallas DS18B20, DS18S20, dan DS1822. Modul ini dibangun di atas modul onewire dan mendukung beberapa sensor yang berbagi satu bus.

Contoh:

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

Kelas

class ds18x20.DS18X20(onewire: OneWire)

Membuat driver DS18x20 yang terikat ke bus onewire.OneWire yang diberikan. Beberapa sensor DS18x20 dapat berbagi bus yang sama.

scan() list[bytearray]

Mencari bus 1-Wire yang mendasarinya dan mengembalikan daftar kode ROM yang sesuai dengan perangkat keluarga DS18x20. Hanya ROM yang kode keluarganya 0x10 (DS18S20), 0x22 (DS1822), atau 0x28 (DS18B20) yang dikembalikan; perangkat 1-Wire lain pada bus yang sama disaring.

convert_temp() None

Mengeluarkan perintah konversi suhu ke semua sensor DS18x20 di bus secara bersamaan (menggunakan SKIP ROM). Setelah memanggil metode ini, Anda harus menunggu konversi selesai (hingga 750 ms pada resolusi 12-bit default) sebelum memanggil read_temp().

read_scratch(rom: bytes | bytearray) bytearray

Membaca scratchpad 9-byte dari perangkat yang dialamatkan oleh rom dan mengembalikannya sebagai bytearray. CRC scratchpad diverifikasi; memunculkan Exception dengan pesan "CRC error" jika CRC tidak cocok.

Catatan

Buffer yang dikembalikan adalah buffer internal driver dan akan ditimpa oleh pemanggilan berikutnya.

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

Menulis 3 byte ke scratchpad perangkat yang dialamatkan oleh rom. buf harus berisi nilai pemicu alarm tinggi (TH), pemicu alarm rendah (TL), dan register konfigurasi.

read_temp(rom: bytes | bytearray) float

Membaca suhu yang paling baru dikonversi dari perangkat yang dialamatkan oleh rom dan mengembalikannya dalam derajat Celsius sebagai float. Menangani pengkodean DS18S20 (kode keluarga 0x10) dan DS18B20 / DS1822 (kode keluarga 0x28 / 0x22), termasuk suhu negatif.

Panggil convert_temp() dan tunggu konversi selesai sebelum memanggil metode ini.