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.