パソコンで温度計

公開日: 電子工作 | , ,

Arduino + STTS751

ありきたりのPC温度計ですが、なんとなく作りたくなったので作ってみる。

コントローラーは手軽なArduino、温度センサーは昔ちょっと使ったまま部品箱で眠っているSTTS751を使います。

 

STTS751

STTS751

STTS751はI2C接続の温度センサーです。
測定温度は-40℃~+125℃、分解能は最大12ビットで0.0625℃刻み、精度は±1℃ (0~85℃)となっている。
このセンサーは、昔米粒AVRに接続して、Androidでも使えるようにしたことがある。

STTS751 – 米粒AVRで温度計

STTS751

STTS751は表面実装のSOT23パッケージ、ブレッドボードで使う為に変換基板を利用する。
バイパスコンデンサ 0.1uFを裏面に乗っけている。

高精度12ビットI2C接続デジタル温度センサ STTS751 – 秋月電子通商
SOT23変換基板 金フラッシュ (10枚入)- 秋月電子通商

 

ArduinoでI2C

米粒AVRではソフトウェアI2Cを作ってSTTS751を使ったけれど、Arduinoではハードウェアで実装されていてライブラリも用意されているので、簡単にI2Cデバイスが使える。

Android アナログピン

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

Wire Library – Arduino

 

回路

Arduino + STTS751

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秒毎にシリアル出力で温度が出力される。

Arduino + STTS751

 

以上、とりあえず、PC接続の温度計が出来ました。

 

関連記事

no image

オシロスコープを手に入れた

ついにオシロスコープを買っちゃいました。 と言っても、DSO QUADと言うポータブルタイプの

記事を読む

Arduinoで温湿度計

Arduinoで温湿度計

秋月電子の温湿度モジュールを使って、温湿度計を作ってみました。 以前「パソコンで温度計」と言うもの

記事を読む

no image

Android + Arduino でリモコン2 (softmodem接続)

以前、LAN接続のリモコン Android + Arduino でリモコン と言うものを作ったのです

記事を読む

Androidで気圧高度計

androidで気圧・高度計(LPS331AP使用)

Androidと大気圧センサー(LPS331AP)をイヤフォンジャックで繋いで気圧と高度、ついで

記事を読む

no image

PIC24FJ64GB002でADKを試す(その1)

先日、MicrochipからPIC向けのAndroid Open Accessoryのライブラリが公

記事を読む

Raspberry Pi - Ethernet

Raspberry Pi インターネット接続

Raspberry Piをインターネットに接続してみた。 有線で接続(Ethern

記事を読む

soundIR 受信機 回路図

赤外線リモコン受信機(イヤホンジャック接続)の回路

  前回からだいぶと時間が経ってしまっていますが、今回はイヤホンジャック接続のリモコン受

記事を読む

Arduinoで温湿度データロガー

Arduinoで温湿度計 #2

今回は、前回作った温湿度計にRTCモジュールとSDカードアダプタを取り付けて温湿度データロガーを

記事を読む

no image

米粒AVRでシリアル通信(ただし送信だけ)

米粒AVR(ATtiny10)にUART機能は搭載されていないので、シリアル通信を行う為には自前

記事を読む

熱湯の温度計測実験

パソコンで温度計 #3

今回は、I2C接続の温度センサー STTS751をケーブルを使ってArduinoに接続できるよう

記事を読む

Arduinoで温湿度データロガー
Arduinoで温湿度計 #2

今回は、前回作った温湿度計にRTCモジュールとSDカードアダプタを

Arduinoで温湿度計
Arduinoで温湿度計

秋月電子の温湿度モジュールを使って、温湿度計を作ってみました。 以前

SDカード・マイクロSDカード
ArduinoでSDカード

電子工作で大量のデータを保存する方法を調べていると、 Arduin

秋月電子 リアルタイムクロック(RTC)モジュール
秋月のリアルタイムクロック(RTC)モジュール

今回は秋月電子のI2C接続のリアルタイムクロック(RTC)モジュールを

秋月電子 キャラクタLCD
秋月の小型キャラクタLCD

今回秋月電子で売られている小型のキャラクター液晶2種を買ったので、

PAGE TOP ↑