STEMMAで広がるArduinoの世界①Step1 温度センサ±0.1°C TMP117
1mmピッチのコネクタはArduino MKRシリーズで採用されましたが、5ピンです。対応するボードなどは見かけません。この連載では、JST SH 4ピン・コネクタをI2C用に採用したSTEMMA QT(Adafruit) およびQwiic(SparkFun)を取り上げます。規格名が決まったのは2018年のようで、2019年ごろから製品が出てきました。
●ピン配置
STEMMA QT(Adafruit)とQwiic(SparkFun)の4ピンの機能の並びは同じですが、信号線の色が異なります。
機能 | STEMMA QT | Qwiic |
---|---|---|
GND | 黒色 | 黒色 |
V+ 3~5V | 赤色 | 赤色 |
SDA | 白色 | 青色 |
SCL | 緑色 | 黄色 |
自作用にebayで購入したケーブル付きJST SH 4ピン・コネクタは、白色ではなく黄色でした。ほかの色はSTEMMA QTと同じでしたが、ピンの位置が異なったので差し替えました。コネクタの反対側にはオスのピンヘッダを圧着しました。
●Adafruitのブレークアウト・ボード
最初に温度センサを取り上げます。STEMMA QT(JST SH 4ピン)コネクタは2か所に装着されていて、どちらにつないでもかまいません。
TMP117 Precision Temperature Sensor
SDA/SCL信号には10kΩのプルアップ抵抗が入っています。I2Cのスレーブ・アドレスがデフォルトが0x48で、裏面のADDRの部分をショートすると0x49になるようです。試していません。
●温度センサTMP117のおもなスペック
データシート TMP117 高精度、低消費電力、デジタル温度センサ SMBus および I2C 互換インターフェイス搭載
- 動作電圧 1.8~5.5V
- 分解能 16ビット、LSBは0.007812℃
- 動作温度範囲 -55~150℃
- 確度
- -20~+50℃ の範囲で±0.1℃ (最大値)
- -40~+100℃ の範囲で±0.2℃ (最大値)
- -55~+150℃ の範囲で±0.3℃ (最大値)
- 消費電流 1Hzの変換サイクルで3.5uA
- インターフェース I2C(1~400kHz)
- データ長 2の補数形式の16ビット
- 平均化出力が可能
- 温度設定のアラートあり
●使用環境
- Arduino UNO R3
- Arduino IDE 1.8.13
- Windows10 20H2
●接続
電源は5V を使いました。Arduino UNO R3のI2Cは、SCLとSDA端子がありますが、SCLはA5に、SDAはA4につながっています。どちら側につないでもかまいません。白色のリード線は見えないので、黄色で配線しました。
●ライブラリの導入
メニューのツールから、ライブラリを管理を選び、検索欄にTMP117を入力します。見つけてきたAdafruit TMP117のインストールをクリックします。
途中、それまでにAdafruitのいろいろなライブラリをインストールしている状況に応じてメッセージが出ることがあります。ここではInstall allをクリックしました。
(※)Adafruitのライブラリを初めて使うときは、Adafruit BusIO、Adafruit Unified Sensorなどをインストールするかどうか聞かれるかもしれません。両方とも必要です。
ライブラリがインストールされると、同時にexample(サンプル・スケッチ)もインストールされます。
●サンプル・スケッチを動かす
メニューのファイルからサンプルの入っているスケッチ例を選択します。そこから、Adafruit TMP117 - basic_testを選択します。
Arduino IDEのツールから、ボードはArduino UNOを選択します。シリアルポートもArduino UNO用を選びます。
コンパイルする右矢印アイコンをクリックします。コンパイルがすんだらArduino UNOへ書き込みが行われ、最後にArduino UNOにリセットがかかり、プログラムが動き始めます。
マイコンへの書き込みが完了しました。というメッセージが出たら、右上にあるシリアルモニタのアイコンをクリックします。
シリアルモニタの右下にあるスピードを9600から115200へ変更します。
シリアルモニタには温度を表示しています。
●その他のサンプル
measurements_settingsは、
- 平均化する測定数を1(デフォルト)、8、32、64回から選択する
- 測定間隔を0、125、250、500、1000(デフォルト)、4000、8000、16000msから選択
- モードを停止、1回だけ、連続(デフォルト)から選択
を選択できます。実行例です。
alertsは、音頭の上限、下限を設定できる機能のデモです。OLEDディスプレイはラズパイ用を流用しました。
●TMP117の記事