onewire --- Giao thức bus 1-Wire¶
Module onewire triển khai giao thức bus master 1-Wire được sử dụng bởi các thiết bị như cảm biến nhiệt độ DS18x20. Module sử dụng một machine.Pin được cấu hình là open-drain để giao tiếp với một hoặc nhiều thiết bị slave trên bus dùng chung.
Ví dụ:
from machine import Pin
from onewire import OneWire
ow = OneWire(Pin("P7"))
devices = ow.scan()
for rom in devices:
print(rom)
Các lớp¶
- class onewire.OneWire(pin: machine.Pin)¶
Khởi tạo bus master 1-Wire trên
machine.Pinđã cho. Chân (pin) được tự động cấu hình là open-drain với pull-up.Các hằng số lệnh ROM:
- SEARCH_ROM: int¶
Lệnh Search ROM (
0xF0). Được sử dụng nội bộ bởiscan()để phát hiện các thiết bị trên bus.
- MATCH_ROM: int¶
Lệnh Match ROM (
0x55). Được sử dụng nội bộ bởiselect_rom()để địa chỉ hóa một thiết bị cụ thể theo mã ROM 64-bit của nó.
- SKIP_ROM: int¶
Lệnh Skip ROM (
0xCC). Địa chỉ hóa đồng thời tất cả các thiết bị trên bus, bỏ qua việc so khớp ROM.
Reset bus:
- reset(required: bool = False) bool¶
Phát xung reset trên bus. Trả về
Truenếu ít nhất một thiết bị slave phản hồi bằng xung presence, ngược lại trả vềFalse. Nếu required làTruevà không có thiết bị nào phản hồi, sẽ phát sinhOneWireError.
I/O bit/byte:
Địa chỉ hóa thiết bị:
- select_rom(rom: bytes | bytearray) None¶
Phát reset rồi gửi lệnh MATCH ROM để địa chỉ hóa thiết bị có mã ROM 64-bit nằm trong rom (bộ đệm 8 byte).
- scan() list[bytearray]¶
Quét bus và trả về danh sách các mã ROM 8 byte (mỗi
bytearraytương ứng một thiết bị được phát hiện). Trả về danh sách rỗng nếu không có thiết bị nào.
Kiểm tra dự phòng vòng (CRC):
Các ngoại lệ¶
- exception onewire.OneWireError¶
Được phát sinh khi thao tác 1-Wire thất bại. Hiện tại được phát sinh bởi
OneWire.reset()khi required làTruevà không có slave nào phản hồi xung reset.