onewire --- Protokol bus 1-Wire

Modul onewire mengimplementasikan protokol master bus 1-Wire yang digunakan oleh perangkat seperti sensor suhu DS18x20. Modul ini menggunakan satu machine.Pin yang dikonfigurasi sebagai open-drain untuk berkomunikasi dengan satu atau lebih perangkat slave pada bus bersama.

Contoh:

from machine import Pin
from onewire import OneWire

ow = OneWire(Pin("P7"))
devices = ow.scan()
for rom in devices:
    print(rom)

Kelas

class onewire.OneWire(pin: machine.Pin)

Membuat master bus 1-Wire pada machine.Pin yang diberikan. Pin secara otomatis dikonfigurasi sebagai open-drain dengan pull-up.

Konstanta perintah ROM:

SEARCH_ROM: int

Perintah Search ROM (0xF0). Digunakan secara internal oleh scan() untuk menemukan perangkat pada bus.

MATCH_ROM: int

Perintah Match ROM (0x55). Digunakan secara internal oleh select_rom() untuk mengalamatkan perangkat tertentu berdasarkan kode ROM 64-bit-nya.

SKIP_ROM: int

Perintah Skip ROM (0xCC). Mengalamatkan semua perangkat pada bus secara bersamaan, melewati pencocokan ROM.

Reset bus:

reset(required: bool = False) bool

Mengeluarkan pulsa reset pada bus. Mengembalikan True jika setidaknya satu perangkat slave merespons dengan pulsa kehadiran, jika tidak False. Jika required adalah True dan tidak ada perangkat yang merespons, melempar OneWireError.

I/O bit/byte:

readbit() int

Membaca satu bit dari bus dan mengembalikannya sebagai 0 atau 1.

readbyte() int

Membaca satu byte dari bus dan mengembalikannya sebagai bilangan bulat (0--255).

readinto(buf: bytearray) None

Membaca len(buf) byte dari bus ke dalam buffer yang telah dialokasikan sebelumnya.

writebit(value: int) None

Menulis satu bit (0 atau 1) ke bus.

writebyte(value: int) None

Menulis satu byte (0--255) ke bus.

write(buf: bytes | bytearray) None

Menulis byte dalam buf ke bus.

Pengalamatan perangkat:

select_rom(rom: bytes | bytearray) None

Mengeluarkan reset diikuti oleh perintah MATCH ROM untuk mengalamatkan perangkat yang kode ROM 64-bit-nya ada di rom (buffer 8-byte).

scan() list[bytearray]

Mencari bus dan mengembalikan daftar kode ROM 8-byte (satu bytearray per perangkat yang terdeteksi). Mengembalikan daftar kosong jika tidak ada perangkat.

Pemeriksaan redundansi siklik:

crc8(data: bytes | bytearray) int

Menghitung CRC 8-bit Maxim/Dallas atas data. Hasilnya adalah 0 ketika data sudah menyertakan byte CRC trailing yang valid, yang dapat digunakan untuk memvalidasi isi scratchpad yang diterima.

Pengecualian

exception onewire.OneWireError

Dilempar ketika operasi 1-Wire gagal. Saat ini dilempar oleh OneWire.reset() ketika required adalah True dan tidak ada slave yang merespons pulsa reset.