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の記事

温度センサTMP117の評価用ボードを動かす

センサ・シリーズ 温度①確度±0.1℃ TMP117 その1 温度の読み出し

超精密温度計の製作①準備

matlabでラズパイにつないだ温度センサからデータをもってくる。確度は±0.1℃

前へ

初めてのBLE (22) Feather nRF52840 Sense④BLE その3

次へ

STEMMAで広がるArduinoの世界②Step1 気圧センサ ±0.03hPa BMP390