パソコンで温度計
ありきたりのPC温度計ですが、なんとなく作りたくなったので作ってみる。
コントローラーは手軽なArduino、温度センサーは昔ちょっと使ったまま部品箱で眠っているSTTS751を使います。
STTS751
STTS751はI2C接続の温度センサーです。
測定温度は-40℃~+125℃、分解能は最大12ビットで0.0625℃刻み、精度は±1℃ (0~85℃)となっている。
このセンサーは、昔米粒AVRに接続して、Androidでも使えるようにしたことがある。
STTS751は表面実装のSOT23パッケージ、ブレッドボードで使う為に変換基板を利用する。
バイパスコンデンサ 0.1uFを裏面に乗っけている。
高精度12ビットI2C接続デジタル温度センサ STTS751 – 秋月電子通商
SOT23変換基板 金フラッシュ (10枚入)- 秋月電子通商
ArduinoでI2C
米粒AVRではソフトウェアI2Cを作ってSTTS751を使ったけれど、Arduinoではハードウェアで実装されていてライブラリも用意されているので、簡単にI2Cデバイスが使える。
Arduino UNOでは、アナログの4番・5番がI2C用のピンとなる。
その他のArduinoでは利用するピンがそれぞれ違っていたりする。
Board | I2C / TWI pins |
Uno, Ethernet | A4 (SDA), A5 (SCL) |
Mega2560 | 20 (SDA), 21 (SCL) |
Leonardo | 2 (SDA), 3 (SCL) |
Due | 20 (SDA), 21 (SCL), SDA1, SCL1 |
回路
ArduinoとSTTS751を接続するのに、秋月電子のI2Cレベル変換モジュール(AE-FXMA2102)を間に入れました。
※2014/2/18 回路を修正しました。
プログラム
#include <Wire.h><br /> <br /> #define STTS751_ADRS 0b0111001<br /> <br /> void setup()<br /> {<br /> Serial.begin(115200);<br /> Wire.begin();<br /> <br /> Wire.beginTransmission(STTS751_ADRS);<br /> Wire.write(0x03);<br /> Wire.write(0b10001100); // EVENT停止、12bit解像度指定<br /> Wire.endTransmission();<br /> }<br /> <br /> void loop()<br /> {<br /> byte valueHigh,valueLow;<br /> int16_t temp;<br /> <br /> // 整数部をセンサーから取得<br /> Wire.beginTransmission(STTS751_ADRS);<br /> Wire.write(0x00);<br /> Wire.endTransmission();<br /> Wire.requestFrom(STTS751_ADRS, 1);<br /> valueHigh = Wire.read();<br /> <br /> // 整数部をPCへ出力<br /> Serial.print(valueHigh);<br /> Serial.print(".");<br /> <br /> // 少数部をセンサーから取得<br /> Wire.beginTransmission(STTS751_ADRS);<br /> Wire.write(0x02);<br /> Wire.endTransmission();<br /> Wire.requestFrom(STTS751_ADRS, 1);<br /> valueLow = Wire.read();<br /> <br /> // 少数部をPCへ出力<br /> temp = (valueLow >> 4) * 625;<br /> Serial.print(temp/1000);<br /> temp %=1000;<br /> Serial.print(temp/100);<br /> temp %=100;<br /> Serial.print(temp/10);<br /> temp %=10;<br /> Serial.print(temp);<br /> <br /> Serial.print("\r\n");<br /> delay(1000);<br /> }<br />
このプログラムをArduinoで走らせると、1秒毎にシリアル出力で温度が出力される。
以上、とりあえず、PC接続の温度計が出来ました。
関連記事
-
-
Android+Arduinoでリモコン4(Microbridge接続)
前回AndroidAccessory接続で作った赤外線学習リモコンを、今回はMicrobridge接
-
-
そうだ、Raspberry Pi用にピンヘッダーのオス・メス変換アダプタを作ろう
Raspberry PiのI/O端子は、ピンヘッダーとなっていて、電極が出っ張ってる
-
-
米粒AVRでI2C通信(マスター)
米粒AVRことATtiny10は3つまたは4つのI/Oピンしか使えないのですが、I2Cなら2つの
-
-
Arduino + USBホストシールド で ADK を試す(その2)
前回「Arduino + USBホストシールド で ADK を試す(その1)」では、Androidで
-
-
PIC24FJ64GB002でADKを試す(その1)
先日、MicrochipからPIC向けのAndroid Open Accessoryのライブラリが公
-
-
Raspberry Piのスクリーンショット
ブログで使う用に、Raspberry Piのスクリーンショットを撮りたいと思った時、
-
-
赤外線リモコン送信機(イヤホンジャック接続)の回路
前回は受信機で、今回は送信機を作ってみました。 受信機と違って、送信機の作成は少し面倒です。
-
-
赤外線リモコン受信機(イヤホンジャック接続)の回路
前回からだいぶと時間が経ってしまっていますが、今回はイヤホンジャック接続のリモコン受
-
-
Arduinoで温湿度計 #2
今回は、前回作った温湿度計にRTCモジュールとSDカードアダプタを取り付けて温湿度データロガーを
- PREV
- Miix28のイヤホンジャック2
- NEXT
- パソコンで温度計 #2