CircuitPython 10行プログラミング Step6 (5) Nano RP2040 Connectで確度0.1℃の温度計
温度センサはテキサス・インスツルメンツ社のTMP117を使います。
●温度センサTMP117のおもなスペック
- 動作電圧 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ビット
- 平均化出力が可能
- 温度設定のアラートあり
利用したブレークアウト・ボードはAdafruitのSTEMMA QT(JST SH 4ピン)です。今回はコネクタ経由で接続せず、ブレッドボード上でピンヘッダから配線します。
TMP117 Precision Temperature Sensor
●必要なライブラリ
ダウンロードしたlibフォルダに入っているadafruit_tmp117.mpyを、PCのエクスプローラで見えているCIRCUITPYフォルダのlibへコピーします。
●配線
I2Cの信号SCLとSDAをつなぎます。7セグメントLEDの配線を参照してください。
●プログラム
ダウンロードしたexamplesフォルダに入っているtmp117_simpletest.pyを、エディタMuにコピペして保存します。正常に動作しました。
●7セグメントLEDに表示
CircuitPythonにはht16k33のライブラリがあります。このICは縦と横のマトリクスの点を点灯させる機能があって、7セグメントLED、14セグメントLED、ドット・マトリクスLEDなど、対応する表示器は多岐にわたります。
4桁の7セグメントとht16k33が1個搭載した表示ボードをアマゾンで入手しました。接続用のピンは、電源とI2Cの信号SCLとSDAの合計4本です。
●必要なライブラリ
ダウンロードしたlibフォルダに入っているadafruit_ht16k33フォルダを、PCのエクスプローラで見えているCIRCUITPYフォルダのlibへコピーします。
●配線
●プログラム2
ダウンロードしたexamplesフォルダに入っているht16k33_segments_simpletest.pyをMuにコピペして保存します。
実行すると、数字、アルファベットといろいろ表示します。
●プログラム3
二つのプログラムを合体し、温度を7セグメントに表示します。
正の温度のときは、小数点第2位まで表示し、零下のときは、マイナス符号を表示するために小数点第1位まで表示します。
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: 2020 Bryan Siepert, written for Adafruit Industries
# SPDX-License-Identifier: Unlicense
# Basic example of setting digits on a LED segment display.
# This example and library is meant to work with Adafruit CircuitPython API.
# Author: Tony DiCola
# License: Public Domain
import time
import board
import busio
import adafruit_tmp117
from adafruit_ht16k33 import segments
# Create the I2C interface.
i2c = busio.I2C(board.SCL, board.SDA)
# This creates a 7 segment 4 character display:
display = segments.Seg7x4(i2c)
tmp117 = adafruit_tmp117.TMP117(i2c)
while 1:
display.fill(0)
if tmp117.temperature < 0:
t = round(tmp117.temperature,1)
else:
t = round(tmp117.temperature,2)
print(t)
display.print(str(t))
time.sleep(2)
実行中の様子です。round関数の実行結果、小数点第1位までの表示になっています。
PCとUSBケーブルを外し、Nano RP2040 ConnectにUSBケーブルで電源だけ配給すれば、表示をします。
連載 CircuitPython 10行プログラミング Step8 release8.0.0 Alpha1
(4) I2Cで温度センサTMP117
(5) アナログ入力 ジョイスティック
連載 CircuitPython 10行プログラミング Step7 release7.2.0-alpha.1
(2) 気圧センサLPS22HB
連載 CircuitPython 10行プログラミング Step6 release7.0.0
(1) Nano RP2040 Connectの準備と動作確認
(2) Nano RP2040 Connectの搭載センサIMU LSM6DSOX
(3) Nano RP2040 ConnectにI2CでIMUセンサLSM9DS1
(5) Nano RP2040 Connectで確度0.1℃の温度計TMP117+ht16k33
連載 CircuitPython 10行プログラミング Step5
(1) Raspberry Pi Picoの準備と動作確認 (2) digitalio (3) Raspberry Pi Picoのmicrocontroller (4) アナログ入力 (5) PWM出力 (6) I2S出力 (7) I2C ① OLEDディスプレイ (8) I2C ② 温湿度センサ (9) I2C ③ 気圧センサ (10) Raspberry Pi PicoのSPI ① TFTディスプレイ
連載 CircuitPython 10行プログラミング Step4
(1) Adafruit Feather nRF52840 Senseの準備 (2) Lチカ (3) 搭載センサ (4) BLE①ペリフェラル (5) BLE②セントラル
連載 CircuitPython 10行プログラミング Step3
(1) Metro M4 Express AirLift (WiFi)の準備 (2) ロータリ・エンコーダ (3) eInk/ePaper (4) Wi-Fi その1 接続 (5) Wi-Fi その2 ソケット (6) Wi-Fi その3 電圧測定 (7) 気圧センサLPS25HB (8) サーミスタ
連載 CircuitPython 10行プログラミング Step2
(1) Grand Central M4 Expressの準備 (2) グラフィック・ディスプレイOLED (3) RTC DS3231 (4) モジュール/SDメモリ (5) 複合センサ BME680 (6) ロードセル+ADS1220 (7) サーボ・モータ① (8) サーボ・モータ② (9) I2S UDA1334A (10) D-Aコンバータ
連載 CircuitPython 10行プログラミング
(1) Trinket M0の準備 (2) ディジタルI/O (3) アナログ入出力 (4) I2C 温湿度センサSi7021 (5) SPI 熱電対+MAX31855 (6) UART 距離センサTFMini (7) 1-Wire 温度DS18B20 (8) ロータリ・エンコーダ (9) 7セグメントLED (10) FANコントロール (11) UART GPS (12) I2C Lチカ MCP23017