onewire --- 1-Wire バスプロトコル¶
onewire モジュールは、DS18x20 温度センサーなどのデバイスで使用される 1-Wire バスマスタープロトコルを実装します。共有バス上の 1 つ以上のスレーブデバイスと通信するために、オープンドレインとして構成された 1 本の machine.Pin を使用します。
例:
from machine import Pin
from onewire import OneWire
ow = OneWire(Pin("P7"))
devices = ow.scan()
for rom in devices:
print(rom)
クラス¶
- class onewire.OneWire(pin: machine.Pin)¶
指定した
machine.Pin上に 1-Wire バスマスターを構築します。このピンは、プルアップ付きのオープンドレインとして自動的に構成されます。ROM コマンド定数:
- MATCH_ROM: int¶
Match ROM コマンド(
0x55)。64 ビット ROM コードによって特定のデバイスをアドレス指定するためにselect_rom()によって内部的に使用されます。
バスリセット:
- reset(required: bool = False) bool¶
バス上にリセットパルスを発行します。少なくとも 1 つのスレーブデバイスがプレゼンスパルスで応答した場合は
Trueを、それ以外の場合はFalseを返します。required がTrueでデバイスが応答しない場合は、OneWireErrorを送出します。
ビット/バイト I/O:
デバイスアドレス指定:
- select_rom(rom: bytes | bytearray) None¶
リセットに続いて MATCH ROM コマンドを発行し、64 ビット ROM コードが rom(8 バイトのバッファ)にあるデバイスをアドレス指定します。
- scan() list[bytearray]¶
バスを検索し、8 バイトの ROM コードのリスト(検出されたデバイスごとに 1 つの
bytearray)を返します。デバイスが存在しない場合は空のリストを返します。
巡回冗長検査:
例外¶
- exception onewire.OneWireError¶
1-Wire 操作が失敗した場合に送出されます。現在は、required が
Trueでリセットパルスにスレーブが応答しない場合にOneWire.reset()によって送出されます。