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.OneWireyang 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), atau0x28(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; memunculkanExceptiondengan 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 keluarga0x10) dan DS18B20 / DS1822 (kode keluarga0x28/0x22), termasuk suhu negatif.Panggil
convert_temp()dan tunggu konversi selesai sebelum memanggil metode ini.