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.Pinyang diberikan. Pin secara otomatis dikonfigurasi sebagai open-drain dengan pull-up.Konstanta perintah ROM:
- SEARCH_ROM: int¶
Perintah Search ROM (
0xF0). Digunakan secara internal olehscan()untuk menemukan perangkat pada bus.
- MATCH_ROM: int¶
Perintah Match ROM (
0x55). Digunakan secara internal olehselect_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
Truejika setidaknya satu perangkat slave merespons dengan pulsa kehadiran, jika tidakFalse. Jika required adalahTruedan tidak ada perangkat yang merespons, melemparOneWireError.
I/O bit/byte:
- readinto(buf: bytearray) None¶
Membaca
len(buf)byte dari bus ke dalam buffer yang telah dialokasikan sebelumnya.
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
bytearrayper perangkat yang terdeteksi). Mengembalikan daftar kosong jika tidak ada perangkat.
Pemeriksaan redundansi siklik:
Pengecualian¶
- exception onewire.OneWireError¶
Dilempar ketika operasi 1-Wire gagal. Saat ini dilempar oleh
OneWire.reset()ketika required adalahTruedan tidak ada slave yang merespons pulsa reset.