single (takedanotes )

シルクスクリーンのインクの焼付け炉を自作する

この記事、ちっとも音に関係ないな、と思いつつだけど、実験ネタとして公開しておこうかなと。
で、家の温度計はこれ。ドコのご家庭にもあるやつ(じゃ無いかもだけど)

秋月のベストセラーキットの温度計。小数点以下1位が出るので、微妙なチェックに便利。部屋の気温を見るだけでなく回路の温度特性を見るときに使っている。センサーは、CMOSのもので、氷の0度と沸騰しているお湯の100度で校正した。
表示は200度までいけるのだけど、日常生活で100度以上の温度を測りたいシーンはほとんど無い。ま、さっきとの気温のずれがどれくらいあるかを数値化するのが狙いなので、あまり絶対精度は気にしていない。

いま、掛かっている案件の中で、アルミ板へシルク印刷というのがある。インクのサイトをみると、よりいい仕上げを望むなら焼付け仕上げが必要らしい。大変だなと思いつつも、いつかやってみたかった、というが、動機だって良いじゃないか、と誰にともなく言い訳しながら、実験の準備を始めた。
今回使うインクはこちらのメーカーのものを使う。

どんなもんかと、メール差し上げたら直接お電話を頂いて、色々コンサル頂いた上で、「#1000」というインクを使う事にした。代理店を経由してオーダー。とりあえず、白と黒を手に入れる。白は、黄ばんでしまうらしく、焼きつきは、80度だそうだ。
はんだごての温度!あつーとか思ってたので、ちょっと、拍子抜け。まあ、やすいビニール線の被膜が融け始める温度でもあるわけで、油断はできないとはいえ、カジュアルな実験には最適な温度かなとか。

そんなある日、携帯などの筐体の設計をやられてる方に、色々お話しを伺うチャンスがあったのだけど、焼付けなしでも、結構OKなんだそうだ。そこは、本気出すところじゃないです、といわれてしまった。もっと、気合いを入れるべきところが他にも、あるということらしい。
いつもは実験が終わった頃に、ちゃぶ台、ひっくり返るんだけど、今回、最初からひっくり返されてしまった。

ま、ひっくり返ったちゃぶ台の下から、芽が出る何かもあるかもしれないという希望の元に、実験の準備は進む。とりあえず、最初の目標は、「エポキシ系インクの焼付け用の炉」だけど、最終的には自前リフロー炉とかになったら、おもしろいかもしれない。
で、比較的高温のセンサーとしては、「熱電対」が有名。秋月で400円妙楽堂さんでも入手できるらしい

K型熱電対と温度のセンシング

熱電対は、温度を電圧に変換する電池のようなもの。1度温度が上がると40.7uV電圧が上がる。デジタルテスターなど、入力インピーダンスが高い電圧計であれば、はんだごて等で250度程度にすれば、10mV 程度出る。電流はほとんど取れないに違いないので、LEDをつけるとかは無理。ただ、ここで見られる温度は、センサーのサキッポで溶接してある2つの金属(理屈では、二つの金属の間には空気が無い状態)を同じ温度にした時に出る電位差と言う事で、周りにある空気の温度(まあ、要するに気温)は無視されている。気温としてセンシングするには、周りの空気の温度も含めての温度として取り出すためには、零接点補正というものが必要。要するに、気温の分を足さないと、気温にはならない。なんと、空気が読めない君なのだ。
計ろうとするものの温度が、1000度とか2000度とかだと、気温の35度ぐらいのズレは誤差のうちになりそうだけど、世の中、すべて熱量的な静止状態に向かって死に続けているのだァ、とか詩的な事を叫ぶまでもなく、常に熱は空気の中に逃げ出す前提で発熱している訳で、周囲の温度としての気温も大事。
相対的とか絶対的ってなんだっけ、とか考え始めちゃうと、基準点をどこに求めるのかとか、ちょっと難しいことにもなりそうだから、ここは気が付かなかったことにする。ま、実験だから、気温程度のズレも、ちょっと気にして置こうかな、ぐらいで、どーよ、とか、なんか、言い訳くさい。

というわけで、熱電対で温度を測るためには、零接点補正のために、別途、気温を測る為のセンサーが必要。
こっちは、はんだごての温度とかにくらべれば、扱いやすい温度で、S8100BなどのCMOSの温度センサーが使える。実際はS-8120Cという型番のセンサーに代替わりしている。これはSMDだけど、リード部品としても使えるように変換基板にハンダづけされたものが秋月で手に入る。

このセンサーの感度は、-8mV/度。K型熱電対の感度は、40.7uV/度だから、これに合わせるために、分圧して足し算する。ミソなのは、温度係数が負なところ。温度が上がると、電圧は下がるので、K型熱電対の出力を逆さにつないで、マイナス方向になるようにする。温度が低いときに、高い電圧が出ていて、それより温度が高くなると、出力電圧が下がる様にして使う。

アナログ部分の検討

さすがに、40.7uVは、100倍しても、4.07mV。はんだごての温度、300度ぐらいがDACで読める電圧ぐらいに変換する必要がありそうだ。
温度の変化で、オーブントースターをオンオフして、トースターの中の温度を一定に保つというのが狙いだから、色々な回路がありそうだけど、ここでは、マイクロプロセッサを使う。
温度の変化は、DACで取り出す。この解像度を10ビットとするなら、1024段階。ATTiny13をプロセッサに使うなら、ADCのリファレンス電圧として1.1Vが使える。
想定する最高の温度差をとりあえず、350度として、それを計測できる最大の電圧差を1.1Vとなる。1024段階だから、温度の解像度は、

  • 350(度)/1024(段階)= 0.34度/step

うまくデジタル的な解像度を100%生かすアナログ処理ができれば相当に高感度。指の体温で突いただけでも変化が見られそうだ。
気温の変化も込みで、センサーの出力が、うまく、0Vから、1.1V 程度に収められればいい。

sencer

CMOSセンサーの仕様書に寄れば、0度で1.7V 程度、40度1.4Vぐらいこれを470kと2.4kのアッテネーターで1/200程度にするので、補正用のセンサーの想定される出力は、一番寒いとき、8.6mV。暑いとき(40度)で7mV。
K型熱電対が350度程度の変化で出力する電位差は、14.25mV。負の係数で使うので、気温センサーの出力が基準値になり、ここから、14.25mV引いて、0をきらなければOKだけど、若干バイアスをかけないと、7(mV)/0.0407(mV/C)=171.99(C)以上の温度は測れなさそうだ。
センサーの想定される最高の電圧は、思いっきり寒いときのセンサーが0度で、8.6(mV)-0(mV)で8.6(mV)、最大値は、思いっきり暑いときの、40度で、センサーの温度が350度で、7(mV)-14.25=-7.25(mV)。振幅は、15mV、15mVを1.1V にするのだから、ゲインは、73,3倍。オフセット(ADCに入れられるように、マイナスになら無いようにするためのゲタ)は、7.25mV。
というセンシングアンプが作れれば良さそうだ。
センサーのアンプを組み立てて、テスターにつなげて、電圧を見てみる。ま、そこそこの数字が出てきた。

senser

センシングのアナログ回路部分、テスターでの簡単なテストでは、それっぽい数字でてるとはいえ、ゲイン70倍あるし、オペアンプ安いし、オフセットたんまり乗ってるに違いなので、実際には、理屈道理の数字は出てないに違いないと踏んで、温度と数字を実測してみる。
横軸がセンサーの出力の電圧。縦は温度。実際計測したのは、冷凍庫に突っ込んだー18度と、開けっ放しのオーブンにセンサーを入れたり出したりしながら100度ぐらいまで。、残りの部分は、直線になるよう適当にエクセルの数字を書き換えてその辺のデータを捏造。とりあえず、単電源の回路なので、マイナスがでちゃうと、アウト。計測可能な限界範囲を見ておくというのも大事。
単電源オペアンプで0V付近も出ますとはいえ、ホン気にして0Vが出るのを期待しちゃだめ。10mVぐらいで勘弁してやるのが大人の対応。20円のオペアンプにそんなに期待するほうが間違い。ここでは、200度超えたら計測不能になるかもぐらいの余裕が大事。
なんちて、実際、指で触れば、変化するのが見られると思って本気で触ってみたら、ギターのプラグを手で持ったときと同じ、ブー系のノイズがのっちゃって、思った結果はでなかった。ちぇーっ!

チン、してみる。

制御のソフトを書く前に、オーブントースターに火を入れてみる。
アマゾンで、1800円のやつをポチる。アマゾンのページにはドコにも出ていないけど、説明書に寄れば、860W。ぜんまい式のタイマーが付いてる。スゲエ熱くなる。まあ、トースターだから焼くのが狙い。これはバラスのヤバイそうだ、と、ドライバーを持つ手が止まった。
いや、タイマーも付いてることだし、電源のオンオフだけうまいこと制御できる電源の延長コード見たいなモノにすれば良いかもしれない。ちょっとヒヨッた。
難しそうなところはキットをうまく利用するぞ、と、秋月で、SSRのキットを手に入れた。

20Aバージョン。8.6Aを制御できれば良いのだから、これで十分だろう。適当な放熱器は必要に違いない。

実際動かしてみて、基本的にオーブントースターには手を入れず、可能な限りそのまま使うことにした。外付けのメカだけで温度制御できればいいなと。SMDのハンダ炉代わりに、ホットプレートをという話も聞いたことあるから、そちらのスジになにかエールを送れればとも思っている。
というわけで、次の買い物アイテムは、電源の延長コード用に8.6A通せる「ACコネクタつきのケーブル。結構高かった。普通のビニールのものは、7A程度らしい。9Aなんて無いだろうな、10Aのものならあるだろうと思ったら、結構無い。なんか、ゴムの燃えにくい素材でできた15A級の物になってしまい、取り回しも楽とはいえない。このプロジェクトで一番高い買い物だったかもしれない。
そういえば、電源スイッチも、もしつけるなら、ちょっと気を使わないとガチっと焼きついてスイッチは切れなくなる。

最近は、LED化が進んでいるとは思うけど、昔のフィラメントの入った電球、スイッチを入れたとたんにパカっと光って切れるのは、電源の投入時に過電流が流れるからだ。
たとえば、真空管のヒーターも同様、電源投入の際、まだ、ヒーターが赤熱してないので、電球全体の抵抗値は低く、電流がたんまり流れる。真っ赤になってくると、良い感じに流れる電流量が規定値に落ち着く。スイッチングタイプのACアダプタで、真空管のヒーターをドライブするとき、額面の数字は足りてるのに、うまく行かないのは、、ヒーターの温まり具合によって、流れる電流が大きく変動してるから。
電球が切れる理屈はわかるのだけど、最後の瞬間を飾っているんだな、と、ツイ思ってしまう。ロマンチストの何が悪いっ!
いや、ロマンチストじゃなくて、ヒーターをバカバカとスイッチングすると言う事は、そのたびに過電流がくるぞと。温度がいい所では、電熱線もそれなりに熱を持っていて、過電流までは行かないのかもしれない。ま、なんにせよ、SSRにはヒートシンクをつけようと決心する。

秋月のキット部品点数も少なく、専用のPCBも付いてるけど、これは使わずに、CPUも乗せるセンサーアンプ基板に部品乗せちゃう手もありそうだ。制御の目玉の素子は、放熱器が必須な感じするし、扱う電流も半端ではないのでキチンと箱に入れるとすると、放熱器をどうケースに固定するかとかもチェック項目になりそう。
配線材も、気をつけないと、流れる電流の熱で皮膜が溶けるかもしれない。
等と問題点を検討しつつも適当にキットを組み立てて、手動で、PID制御をやってみる。

ソフトに何が必要なのか、実際に手で動かしてみた雰囲気はこんな感じ。

  • 温度を上げる時は、ヒーターで暖めるわけで、比較的早そうだけど、下げるのは周囲の気温に影響されてすぐには下げられないかもしれない。
  • ヒーターを止めてもすぐには温度上昇は止まらない。狙いの温度を狙うとあっという間に通り過ぎそう。
  • むしろ、近傍の温度へあげる方向への制御にする。
  • この比較的単純なループをぐるぐる回す。毎回ヒーターの性能を簡単に読む式。

ただ、10ビットで取ってもADCそのものの精度はそんなに期待できないと思うべきかもしれない。何しろ相手は、40.7uV。オペアンプのノイズのほうがでかいかもしれない。さらに、最終的に制御するのは、100V数アンペアオーブントースターだ。侮れないぞ。

制御ソフトを書いてみる

Tiny13で、テストも含めて、ADCのソフトを書いてみる。リファレンスは1.1V。10ビットでデータをとりだす。さらに、IO類のクロックを止めて、ローノイズにデータを取り出す、いわゆる「寝てる間に変換しました」モードを試してみる。
基本的に温度を下げるためにはヒーターをきる以外、何もしない。温度を上げるだけ。基本のアルゴリズムはこんな感じ。

  1. 現在の温度を取る。
  2. 目標の温度と現在の温度との中間地点の温度を取る。
  3. 目標の温度より今の温度が高かった場合、なにもしない。
  4. そうでなければ、その温度になるまで、ヒーターを稼動。
  5. 時間を計る。
  6. 中間地点に来たら、時間の計測終了。
  7. 暖めた分だけ待って、1にもどる。

余熱が強力なので、狙いの温度までは暖めない、というのが工夫したポイント。コンデンサの放電のアルゴリズムに似てるかもしれないとか、ちょっと思った。オーブントースターのクセに、物理君だなっ!
現在の温度は8回計測して平均してローパスフィルタを掛け、細かい変動を収束させちゃう。

デバッグは、センサーの代わりにトリマーをつけて、適当な数値が着たら(80度ぐらいに相当する、ADCの値が取れたら)ヒーターを止めて、タイマーを指折り数えて、という感じ。妙に牧歌的なソフト。

実際にセンサーをつなげて、SSRを動かしてみたら、狙いの80度を超えてガンガンいっちゃう。あれよあれよという間に、10年以上大事に使ってきた温度計のセンサーが焦げた。ばかーばかー。
ためしにセンサーの出力をオシロで見たら、ものすごいノイズ、というか、波打ってる。ギターアンプに接続したシールドを手で持ったときのブーンと似た系のものだと想像する。
さらに、このノイズ、センサーのケーブルを指で触ったり、にぎったりすると、大きく変動していて、高インピーダンスの回路に何の対策もしないという暴挙に由来するものと想像する。んーまだ、僕には荷の重い回路だったな、とか言いながら、C4を追加。フィルターというより、平滑回路。

狙いの温度周辺で、バガバカとスイッチングを繰り返しながら、それっぽい温度をキープみたいな感じになった。実測で、数度の範囲ではおさまりそうだ。
最終的にはこれを使って、シルク印刷するところで、なにより、インクの焼付けに使う温度が、毎回似たような条件でできるというのが狙い。多くは望まない。これでOKとしよ。

「というわけ」というのも変だけど、実装で、全然違う動作になったり、データが必要だったりな、再現性の低い実験になった。