ds18x20 --- DS18x20 温度センサードライバ¶
ds18x20 モジュールは、Maxim/Dallas の DS18B20、DS18S20、DS1822 1-Wire デジタル温度センサー用のドライバを提供します。onewire モジュールの上に構築されており、単一のバスを共有する複数のセンサーをサポートします。
例:
import time
from machine import Pin
from onewire import OneWire
from ds18x20 import DS18X20
ds = DS18X20(OneWire(Pin("P7")))
roms = ds.scan()
ds.convert_temp()
time.sleep_ms(750)
for rom in roms:
print(rom, ds.read_temp(rom))
クラス¶
- class ds18x20.DS18X20(onewire: OneWire)¶
指定された
onewire.OneWireバスにバインドされた DS18x20 ドライバを構築します。複数の DS18x20 センサーが同じバスを共有できます。- scan() list[bytearray]¶
基になる 1-Wire バスを検索し、DS18x20 ファミリのデバイスに対応する ROM コードのリストを返します。ファミリコードが
0x10(DS18S20)、0x22(DS1822)、0x28(DS18B20)の ROM のみが返され、同じバス上の他の 1-Wire デバイスは除外されます。
- convert_temp() None¶
バス上の すべての DS18x20 センサーに対して温度変換コマンドを同時に発行します(SKIP ROM を使用)。このメソッドを呼び出した後、
read_temp()を呼び出す前に変換が完了するまで(デフォルトの 12 ビット分解能では最大 750 ms)待つ必要があります。
- read_scratch(rom: bytes | bytearray) bytearray¶
rom で指定されたデバイスから 9 バイトのスクラッチパッドを読み込み、
bytearrayとして返します。スクラッチパッドの CRC が検証され、CRC が一致しない場合はメッセージ"CRC error"を伴うExceptionを送出します。注釈
返されるバッファはドライバの内部バッファであり、後続の呼び出しで上書きされます。
- write_scratch(rom: bytes | bytearray, buf: bytes | bytearray) None¶
rom で指定されたデバイスのスクラッチパッドに 3 バイトを書き込みます。buf には高温アラームトリガー(TH)、低温アラームトリガー(TL)、構成レジスタの値が含まれている必要があります。
- read_temp(rom: bytes | bytearray) float¶
rom で指定されたデバイスから直近に変換された温度を読み込み、摂氏の
floatとして返します。DS18S20(ファミリコード0x10)と DS18B20 / DS1822(ファミリコード0x28/0x22)の両方のエンコーディングを、負の温度を含めて処理します。convert_temp()を呼び出し、このメソッドを呼び出す前に変換が完了するまで待ってください。