ラベル 温度測定 の投稿を表示しています。 すべての投稿を表示
ラベル 温度測定 の投稿を表示しています。 すべての投稿を表示

2014年10月3日金曜日

Arduinoを用いたテンパー炉、リフロー炉の温度制御装置(2) (K型熱電対アンプモジュールでの温度測定編)

前回の教訓より、秋月電子のMAX31855使用 K型熱電対アンプモジュールを購入。
秋月電子の通販は朝に注文すれば翌日朝には届くので便利です。
けど、いくら買っても送料がかかる。
つい余計なものをいろいろ買って送料を浮かせたいという衝動に駆られ、今回もいろいろ買ってしまった。
ひとつはArduino uno 純正品です。
Arduino uno 届いたのみたら、チッちゃ。
いわれて見ればそのサイズなんだけど。
箱がキャラメル箱の少し多きいくらいでちょっとびっくり。
想像ではPCのマザボの小さいくらいのケースだとおもってたんが。

けど基板のデザインがかっこいい。ちょっとハイソな気分。

よくわからないけど、純正品でないとArduinoといってはいけないとか。
ブログタイトルが”Arduinoを用いた”とあるので、いちお写真のすみっこにいれておこう。


さて、本題です。
MAX31855使用 K型熱電対アンプモジュール届きましたが秋月にしては珍しく説明書がなかった。
早速、純正モデル君の出番。
参考ページのAdafruit Industries(エイダフルート)のリンクを見たが、回路図が無くて、よくわからんぞ。

なので、スイッチサイエンス様の

MAX31855 K型熱電対温度センサ 5V版(SPI接続)

を参照する。

しかし、秋月のモジュールは 通信形式:3線式出力専用SPIとのことですが、基板のシルクにDO,CS,CLKとある。
上記スイッチサイエンスのサイトや Maxim社のMAX31855 データシートでは MISO、SCK、SSの記述。


大体想像つきそうですが、ICのデータシートより、モジュールのICの足ピンからのパターンを追って
DO, → MISO
CS, → SS
CLK、→ SCK 
のようです。

で配線しました。
スケッチはスイッチサイエンスのをコピペ。
が、ちょっとはまりました。


・はまり一
 モジュールに近い0ピンでグランド取りたいので
  pinMode(0, OUTPUT);
  digitalWrite(0, LOW); 
 としましたがグランドにならなかった。
 深く考えずにモジュールまでグランド線を引っ張った。
(実はデジタル0,1ピンはシリアル通信用に使用してるとのことで、使えないことが判明。素人だ。)





・はまり二
モジュールに近い4ピンからSPI通信したく

#define SLAVE 4
  pinMode(SLAVE, OUTPUT);
  digitalWrite(SLAVE, HIGH);


とすれば 
 4(SS)、5(MOSI)、6(MISO)、7(SCK)
 になると思ったが、つないだら0度表示でたまにエラー。
又誤配線かと何度か配線しなおし。

答えは Arduino 日本語リファレンス 【SPIの概要】 にあった。

【接続】 SPI通信で使われるピンは次のとおりです。 
Arduino Duemilanove(ATmega168/328を搭載するボード): 10(SS)、11(MOSI)、12(MISO)、13(SCK) 

ということで、11,12,13は不動なのね。まぁそうだよな。
接続しなおしたらOKだった。 よかった。

早速、液晶のライブラリ入れて、修正してテスタの温度計と比較。


大体10度くらいの誤差。センサの位置が同じところにないせいだと思われる。

モジュールの方は室温も計っており、いわゆる冷接点温度補正をしています。
室温も表示できます。

とりあえず、温度測定は可能になった。
次はソリッド・ステート・リレー(SSR)キット 25A(20A)タイプ
でPID温度制御してみます。

2014年10月2日木曜日

Arduinoを用いたテンパー炉、リフロー炉の温度制御装置 (1)(白金抵抗素子温度測定編)

さて、オーブントースター内の温度はK型熱電対対応のテスタで測定しました。
Arduinoで温度測定するには、同じように熱電対センサを使う場合はSPI通信対応の
秋月電子MAX31855使用 K型熱電対アンプモジュールがあります。¥1620円 
K型熱電対プローブが400円。
合わせて2000円オーバー。

高いかな?と欲を出したのが運のつき。

秋月電子を調べてると白金抵抗素子が350円であった。

これで温度を測る方法を調べると、温度測定として以下のサイトを見つけて参考にしました。

秋月で売ってる白金抵抗素子で こて先温度計を作る

けっこう小さい白金抵抗素子。
ピンソケットにはんだ付けしてからコードで延長。
ピンソケットの周りにアルミテープ巻いて耐熱処理。
見てみると
多回転半固定ボリューム たて型 3296W は80円で3つ(200Ωはなかったので500Ωで兼用)
68Ωの抵抗がなかったので100本で100円
ほかは部品あるんで 
センサー350円+オペアンプ80円+トリマー抵抗(80X3)240円
合計670円!でできるやないか。
で、アナログ回路のオペアンプはもうほとんど触ってなくてようわからんが、
安さに負けてやることに決定。(ではまってしまった。)

いちお紹介サイトでは、抵抗は誤差1%以内ということでしたが、テスターで測って正確なやつを選別することにして、普通の5%の抵抗で作成しました。

作成した白金抵抗素子での温度表示
温度表示の液晶は
I2C接続小型キャラクタLCDモジュール 8x2行 AQM0802A
を使用。回路は以下のサイト。
AQM0802AをArduinoで使ってみる
を参考にしました。

温度電圧変換のオペアンプで3.3Vの定電圧回路を入れている。
なので、Arduinoの5VのI/OからLCDの3.3VI/Oにプルアップ(ダウン?)して直接つないだ。
このとき、LCD用の1.0μFのセラコン買い忘れて、近くの電気パーツ点にいったら定休日。
仕方なく、実家のガラクタ入れから1.5μFのセラコンらしきものをあさった。
つけてみたら問題なく動いた。

しかし、Arduinoはいろいろなライブラリが充実して公開されてる。
コピペするだけでパソコンと同じようにprintf()とかで液晶表示できて、おおー。
液晶表示するまで悩み続けたあの日々はなんだったのかと。
世間の5年遅れくらいで、びっくりしました。

で、こて先温度計を作る にあるようにトリマー抵抗を調整しました。
トリマーの動きに比例して温度が変わるかと思ったが、ずっとマイナス30度くらい。
誤配線か?と回路を見直したが大丈夫みたい。
根気よくトリマーをいろいろ試していたら、突然表示温度が上がってきた。
どうも、2つの抵抗の微妙なバランスが釣り合うところで温度校正するようだ。
そして、結構調整がシビアだ。
何とか基準抵抗をさした調整を終えて白金抵抗素子にかえたらちょっと室温より高い。

うーん。
校正がシビアで現場で使用できないんじゃないかと。

今度は熱電対と一緒にオーブンにセンサを入れた。
熱電対で300度位で自作センサは270度くらいで30度くらい低い。

ちょっと使えんな。これ以上改善の方法も思いつかない。

おとなしくK型熱電対アンプモジュールを買って実装することにしました。

しかし、ユニーバーサル基板で作成しましたが、こんな簡単なものでも3時間くらいかかった。
こりゃ、大変だ。基板屋さんありがとう!と自画自賛だが、
やってるうちにエッチングでない銅箔の配線方法考え付いた。
ので、今度試してみます。