パソコンで温度計

公開日: 電子工作 | , ,

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接続の温度計が出来ました。

 

関連記事

ArduinoでSDカード

電子工作で大量のデータを保存する方法を調べていると、 Arduinoでも比較的簡単にSDカードを

記事を読む

no image

Android+Arduinoでリモコン3 その2(AndroidAccessory接続)

何度か、Android+リモコンのネタを書いたことがあるのですが、今回はAndroid Access

記事を読む

秋月の小型キャラクタLCD

今回秋月電子で売られている小型のキャラクター液晶2種を買ったので、ちょっと比較してみる。 買っ

記事を読む

そうだ、Raspberry Pi用にピンヘッダーのオス・メス変換アダプタを作ろう

  Raspberry PiのI/O端子は、ピンヘッダーとなっていて、電極が出っ張ってる

記事を読む

no image

PICでMicroBridgeをやってみた

今回は、@yishiiさんが公開されている、PIC24FJ64GB002用のMicroBridgeソ

記事を読む

米粒AVT(tiny10) リモコンレシーバー

米粒AVRでリモコン受信処理

  米粒AVR(Tiny10)で赤外線リモコンを受信して処理をするサンプルを作ってみまし

記事を読む

Raspberry Piのリビジョン

リビジョンの種類 現在、Rapsberry Piにはリビジョン1とリビジョン2と呼ばれる2つの

記事を読む

no image

赤外線リモコン受信機(イヤホンジャック接続)を作ってみた

最近、このブログ何も書いて無かったので、作成中の物の紹介・・・  これは、Andro

記事を読む

Raspberry Pi SDカードのクラスと起動速度

SDカードにOSをインストールするので、起動にはそれなりに時間がかかります。 では、どれくらい

記事を読む

no image

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

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

記事を読む

Arduinoで温湿度計 #2

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

Arduinoで温湿度計

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

ArduinoでSDカード

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

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

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

秋月の小型キャラクタLCD

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

PAGE TOP ↑