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.