2015年05月31日

温度センサー -第3回:回路作成と動作

前回はArduinoのアナログ入力機能について説明を行いました。温度センサーを使って、Arduinoで温度を読み取ります。


1. 部品確認

まず温度センサーのことを調べます。使用する温度センサーは秋月電子通商の「高精度IC温度センサ LM35DZ / 通販コード I-00116」です。
大事なのは、「温度センサーのメーカーが基本としている回路」と「温度センサーのピンと信号の配置(ピン配置)」です。それぞれの情報をLM35のデータシートから引用します。上が回路図、下がピン配置です。
30_温度センサー代表回路.png
引用元:秋月電子通商 通販コードI-00116 データシートより

31_LM35ピン配置.png
引用元:秋月電子通商 通販コードI-00116 データシートより

ピン配置は「Bottom View」と書かれていますので、温度センサーを下から見たときの図です。実際の部品を正面からみるとこのようなピン配置となっています。
31_LM35ピン配置_1.png

この情報を元に回路図を作成していきます。


2. 回路作成

データシートの回路図を確認すると、+VsをArduinoの出力電源、OUTPUTをArduinoのアナログ入力、GNDをArduinoのGNDに接続すれば、温度センサーの出力電圧(=温度)を測ることができそうです。
ここで重要なのが、「電源に入力できる電圧の範囲」です。ここで範囲外の電圧を接続してしまうと、作った回路が動かなかったり、最悪の場合燃えます。ですので、絶対に守らなければなりません。
温度センサーの電源電圧の範囲は4[V]〜20[V]、Arduinoの電源の電圧は5[V]です。よって+VsとArduinoの5Vを接続して大丈夫です。
上記の接続から回路図を作成しました。
31_温度センサー回路図_1.jpg

実際に作成した回路の写真が下図です。
31_IMG_8305.jpg



3. 動かす

回路ができましたので、Arduinoにスイッチを書き込み、電圧を読み取ります。
今回はスケッチは自作せずにArduino公式が公開しているサンプルスケッチReadAnalogVoltageを使います。このスケッチの動作を簡単に説明すると、以下のようになります。
  1. analogRead()関数にてアナログ入力の電圧を読み取る。このときは5[V]を1024分割しているので、値の範囲は0〜1023となる
  2. 読み取った値を0〜1023から、実際の電圧に変換する
  3. 変換した実際の電圧をSegial.println()関数にて、パソコンへ送る

このように、このスケッチではアナログ入力電圧の値をArduinoからパソコンへ送ることができます。
Arduinoから送られてきた値をパソコンで読み取るにはシリアルモニタという機能を使います。
31_シリアルモニタ1.png

これが実際にシリアルモニタで読み込んでいる画面です。
31_シリアルモニタ2.png

このように0.26[V]がアナログ入力にくわえられていることが分かります。
LM35は1[℃]当たり10[mV]ですので、0.26[V]を温度にすると次のようになります。
 260[mV]/10[mV]=26[℃]

これを測定したときの気温は26.5[℃]でしたので、Arduinoで読み取った値とほぼ同じです。


このようにArduinoと温度センサーを接続し、サンプルスケッチを使うことで温度を読み取ることができました。
ただ、この方法ですと温度を知るには、電圧から温度を計算しないといけません。

次回は温度を直接読み取れるように、スケッチを変更していきます。


Arduinoで計る,測る,量る [ 神崎康宏 ]

価格:3,024円
(2015/6/22 10:56時点)

posted by ました at 19:52| Comment(0) | TrackBack(0) | 電子工作の実践 | このブログの読者になる | 更新情報をチェックする

2015年05月24日

温度センサー -第2回:アナログ入力

前回はArduinoで温度を測るための流れを説明しました。今回はArduinoが電圧を読み取る機能のアナログ入力について説明します。

アナログ入力に使えるピンは決まっていて、「Analog IN」と書かれている箇所がアナログ入力に使用できるピンです。このピンに測りたい電圧の線を繋ぐと、電圧を測定することができます。
24_アナログ入力_1.jpg

Arduinoはアナログ入力ピンに接続された電圧を分割して読み取ります。分割されていない実際の電圧をアナログ、分割されてArduinoが処理する値をデジタル、アナログからデジタルに変換することをアナログ/デジタル変換(以下、A/D変換)といいます。
アナログやデジタルは電圧に限らず、世の中に存在する実際の値ならばアナログ、機械で処理するために分割した値ならばデジタルです。

例えば、0〜5[V]の範囲を8段階に分割するA/D変換を考えます。0〜5[V]の電圧を等間隔に分割し、それぞれに0〜7までの番号を割り振ります。
24_AD変換_1.jpg

このA/D変換に2.8[V]を入力したとします。この電圧が含まれている範囲は4なので、A/D変換結果は4となります。
24_AD変換_2.jpg

このように電圧のA/D変換では電圧を等間隔に分割し、その箇所の番号を出力します。
ArduinoのA/D変換は、範囲が0〜5[V]、分割数が1024です。ですので、A/D変換出力の1当たりの電圧は5[V]/1024=4.88[mV]です。
A/D変換結果が1なら4.9「mV]、5なら24.4[mV]、1023なら4995.1[V]の電圧がアナログ入力ピンに繋がっていることが分かります。

ArduinoでA/D変換結果を読むにはスケッチのanalogRead()関数を使います。これでアナログ入力ピンに繋がっている電圧を知ることができるので、温度センサーLM35の仕様に従って電圧から温度を計算すれば、Arduinoで温度を測ることができます。

次回は実際にArduinoと温度センサーを使って、温度を測ってみます。


Arduino工作アイデア集 [ 中村文隆 ]

価格:2,160円
(2015/6/16 10:26時点)

posted by ました at 17:27| Comment(0) | TrackBack(0) | 電子工作の知識 | このブログの読者になる | 更新情報をチェックする

2015年05月19日

温度センサー -第1回:概要

今回からは温度センサーを作ろうと思います。
センサーとは温度や振動、音などといった世の中の現象を機械で読み取れるようにする道具のことです。Arduinoを使って温度を読み取ろうと思います。

Arduinoで温度を読み取るといっても、Arduinoに温度を測定する機能はありません。そこで、温度センサーをArduinoに繋ぐことで、Arduinoを温度センサーとして使います。
Arduinoを温度センサーとして使う流れは以下の通りです。
  1. 温度センサーが温度を電圧に変換する
  2. Arduinoが電圧を読み取る
  3. 読み取った電圧から温度を計算する
  4. 計算した温度をパソコンへ通知する

このように、温度センサーが温度を電圧へ変換することで、Arduinoでも温度を知ることができます。

今回使用する温度センサーは秋月電子通商の「高精度IC温度センサ LM35DZ / 通販コード I-00116」です。
IMG_8290.jpg

この温度センサーが出力する電圧は温度と比例しており、1[℃]当たり10[mV]で、0[℃]のときは0[mV]です。
ですので、Arduinoが温度センサーの出力電圧を読み取り、出力電圧が0[mV]なら温度は0[℃]、10[mV]なら温度は1[℃]、200[mV]なら温度は20[℃]、300[mV]なら温度は30[℃]だということが分かります。


さて、ここまでで「Arduinoが電圧を読み取れれば、温度も分かる」と説明してきました。ですが、今までのタイマーなどで使ってきたのはHighかLow(5[V]か0[V])の読み取りであり、その中間の2[V]や3[V]は分かりませんでした。
そこで中間の電圧を読み取るために「アナログ入力」という機能を使います。

次回はアナログ入力について説明します。

ラベル:温度センサー
posted by ました at 19:16| Comment(0) | TrackBack(0) | 電子工作の実践 | このブログの読者になる | 更新情報をチェックする