スケッチの準備
前回でハードウェアの準備は一応完了しました。今回はスケッチを用意して実際の温度測定を行います。スケッチはスイッチサイエンスで用意してあるサンプルのスケッチをそのまま使用します。
スケッチおよび導入方法は、このスイッチサイエンスのWebに詳しく載っています。その手順に従って、インストールしました。
MAX6675からSPIでデータ受信
熱電対制御ICのMAX6675からは温度として計測されたデータは、SPI(Serial Peripheral Interface)と呼ばれる次に示す4本の信号線を用いたシリアル通信方式でやりとりされます。
SCK(Serial Clock) マスタ・スレーブ間のシリアルデータの送受信のためのクロック
MISO(Master In Slave Out) スレーブから出力され、マスタに入力されるデータが
送受信される信号線
MOSI(Master Out Slave In) マスタから出力されスレーブに入力されるデータが
送受信される信号線
SS(Slave Select) 複数のスレーブが接続されている時にスレーブを選択する
ための信号線。マスタとスレーブが一対一の時は配線を
省略することもできる。
K型熱電対
150℃くらいまではLM35DZの半導体温度センサがあります。今回はオーブンの内部温度の測定を想定しています。そのため、200から300℃くらいの高温の温度測定が必要になります。
このような高温の温度測定には熱電対(ねつでんつい)がよく利用されます。タイミングよくスイッチサイエンスからこのK型熱電対センサ・モジュール・キットが発売されました。このセンサ・モジュール・キットを利用することで目的が達成できそうです。
K型熱電対センサ・モジュール・キット
スイッチサイエンス社のK型熱電対センサ・モジュール・キットには、MAXIMのMAX6675と基板、電源バイパス・コンデンサ、K型熱電対用コネクタ、熱電対センサがセットになっています。
MAX6675は冷接点補償熱電対/ディジタ・ルコンバータICで、熱電対からの信号電圧をディジタル変換してSPIのシリアル信号で送出します。Arduinoのディジタル・ポート8から13を利用してMAX6675に電源を供給し、温度測定結果をSPIのシリアル通信で受信してPCのArduino IDEのモニタに測定結果を送出するサンプルが用意されています。
完成したものをArduino Duemilanoveに接続したようすを次に示します。
計算の精度
スケッチで扱う変数の種類により、表現できる数値の上限と下限が決まります。計算途中で上下限の範囲を超えると正しい結果が得られなくなります。
今回の例では、アナログ入力の基準電圧をmV単位の値でvref=1100と設定しています。LM35DZのセンサからの入力は0から1023までの値となります。室温が20℃くらいだとするとセンサからの出力電圧は200mVになります。アナログ入力ポートから読み取られた値はおおよそt0=186となります。
温度のモニタ
前回追加したセンサを含めて、5か所の温度経過が測定できるようになりました。今回このセンサを利用して、蒸篭内の温度分布と時間経過に伴う変化の様子を調べてみます。
t1 : 蒸篭の底の蒸気の吹き出し口から蒸気を発生するステンレスのなべに
センサを差し込み、なべで発生する蒸気の温度を測定します。
t2 : 蒸篭のすだれの下の蒸気だまりの温度
t3 : 蒸篭に入れた米のすだれに近い底の中心部分に差し込む
t4 : 蒸篭に入れた米の上部の中心部分、センサが隠れるくらいだけ差し込む
t5 : 蒸篭に入れた米の上部の中心から一番遠い角の温度をはかる、センサが
隠れるくらいだけ差し込む
温度計の追加
Arduinoでは、アナログ入力が6ポートまで設定できます。この後行う麹の培養管理では、湿度の管理も行います。そのため、湿度を測定する必要があります。湿度センサも多く開発され発売されていますが、数百円で湿度を直読できるものはまだ見当たりません。そのため、小学校の気象観測で測定した乾湿球湿度計をLM35DZで用意して、Ardunoで湿度を評価することにします。
前回までに、3ポートLM35DZが接続されていたものに、新たに2ポートのLM35DZを追加しました。
コネクタをB3B XH3(日本圧着端子)に変更
今回コネクタを、日本圧着端子 B3B-XHに変更し、以前より抜けにくいものにしました。少し抜き差しが大変になりますが、しっかり固定されます。