ラベル AQM0802A の投稿を表示しています。 すべての投稿を表示
ラベル AQM0802A の投稿を表示しています。 すべての投稿を表示

2014年10月15日水曜日

Arduinoを用いたテンパー炉、リフロー炉の温度制御装置(I2C液晶壊れる。)

Arduinoを用いたテンパー炉、リフロー炉の温度制御装置で、
白金抵抗素子の温度表示の液晶は
I2C接続小型キャラクタLCDモジュール 8x2行 AQM0802A
320円と安いし、使用していた。
I2Cで2ピンで制御できるのは便利だけど。3.3V電源も必要。

しかし、こやつはリードの足が1.5㎜ピッチと使いにくい。
なので無理やり2.54㎜ピッチのユニバーサル基板に足を広げて使っていた。
が、白金抵抗素子に取り付けていたI2C接続小型キャラクタLCDは使わなくなった。
ので、液晶もそのままにしときゃーいいのに取り外そうとしたら壊れてもうた。
ちょっと力いれたら割れたorz... 
で、もう一台買ってあったので1.5㎜ピッチに近い1.27㎜ピッチの表面実装変換パッドに実装。


ピンの付け根の少し上にうっすら白い線が…
最初上手く映っていたが、抵抗の位置かえたりと、いじってたら、そのうち表示しなくなった。
どうも,ピンに付け根にストレスかかって、いかれてもうた。
素直にI2C接続小型LCDモジュールピッチ変換キットとか買っとけばよかったけど。
600円だからね。

で、いつ買ったか記憶がないくらい前に買ってあった。
LCDキャラクタディスプレイモジュール(16×2行バックライト付)
いわゆるSC1602シリーズのキャラクター液晶。


表示画面もデカいし、バックライトなければ500円と安い。
しかし、シリアル通信でなく、4ビットパラレルバスで接続する。
rwを常時WriteにGND接続しても rs, enable, d4, d5, d6, d7と接続に6ピンいる。 
キャラクターLCD表示ライブラリ と LiquidCrystal() なんかを参照して接続。
当初デジタルピンを使っていたが、スイッチとか使ったら(後述)液晶につなぐのに足りなくなってしまった。
でアナログピンに液晶が使えるかを以下を調べてみたが、使えるかいまいちわからない。

Arduinoチュートリアル 基礎編 アナログ入力ピンより
Arduinoのアナログ入力ピンA0-A5には、
14から19までのピン番号が割り振られ、デジタルピンとして使える。
Arduinoボードの違いまとめ(Uno, MEGA 2560, Leonardo, Due)よりUnoの場合を確認。

わからないのでやってみようとアナログ入力ピンA0-A5の6本に液晶を接続。


#include <LiquidCrystal.h>
//LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(14, 15, 16, 17, 18, 19);


とアナログピンを指定したらすんなり表示した。やったね。
で、無事デジタルピンはあいてくれた。


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時間くらいかかった。
こりゃ、大変だ。基板屋さんありがとう!と自画自賛だが、
やってるうちにエッチングでない銅箔の配線方法考え付いた。
ので、今度試してみます。