熱電対の上昇は温度センサーに較べるとはるかに小さく、オペアンプで増幅しているにしても、こんな値になるはずはない。オシロを取り出して出力電圧を見てみた。おやおや、盛大なノイズが上がっている。オペアンプが発振しているのだろうか。ウェブで色々原因を探し回る。的確な答えはなかったが、要するにオーディオアンプの入力と同じで人体に乗っている微小なACが悪さをしていると考えるのが一番妥当なようだ。熱電対の出力のところがハイインピーダンスだと言うことである。実際には、熱電対の接点を手で触ることはなく、耐熱チューブで包んでヒーターの中に入れるだけだから問題ないとは思うが、手で触っただけでおかしくなるというのは何とかしなければいけない。ハイインピーダンスというのなら、交流的にコンデンサーを入れてバイパスしてしまえば良いのではないか。温度変化は、殆ど直流と考えてよいので少々のコンデンサーを入れても影響はないはずだ。実験してみることにする。100pFから、10μFまでのコンデンサーを次々に入れていく。4.7μFあたりからピタリとノイズが止まった。表示電圧に変化はない。仮説に基づいて対策を考え、それが想定どおりの動きをする。いやいや、こんなささいなことでも思ったように動くというのは嬉しいものである。ブレッドボード上で熱電対を含めて温度が測定できるところまでは確認できた。試しに百円ライターで熱電対の接点をあぶると、盛大に電圧が上がる。アナログ部はこれで問題がないようだ。オペアンプはまだLM358。電源は5V単電源で良いだろう。様子を見てレールツーレールのLMC6482に行く(買ってある)。デジタル側のことも考えなければいけない。CPUは最近の定番,Tiny2313ではADコンバーターを持っていないので面倒だ。Tiny861あたりだろうか。Megaまで行くことはあるまい。Tiny861なら、大分前に使う当てがなかったが秋月で安かったので買ってある(¥200)。想定しているケースは少し小さいので、7セグLEDを含めたレイアウトが悩ましい。ケースの製作だけが進んでいる(10/25/2011)主だった構成は決まったが、細かいところの仕様はなかなか固まらない。それなのにケースの制作だけは進んでいく(これは命取りになるときがあるが)。今、考えている仕様は、7セグLEDを2段にして一つの段に現在温度、次の段に設定温度を表示させ、ロータリーエンコーダーで設定温度を決めると、その温度差を見てニクロム線ヒーターをON/OFFする。ACの入り切りは、SSR(ソリッドステートリレー)で行う。ケースは、千石で買ったテーシンのTB-65B(54×84×35)である。底はアルミプレートになっており、これでアクリル曲げ器の台板に固定する。小さいが、これはもともと電源スイッチをつけるためだけに買ってあったものである。このケースも、このあいだの電子ボリュームと同じように、基板の固定用の柱が中に出っ張っていて、配線用の基板は隅を切らないと入らない。ここに全部入るだろうかとケースを手にとって眺めている間に、急に作りたくなり、サーキュラーソーで、ケースに入る汎用基板の隅を切り始めると、もう手が止まらなくなった。7セグLEDの固定をどうするか考えて、保守性を上げるため主基板にポストを立てて固定するアイデアが浮かぶ。するとまたこれも作りたくなり、以前買ってあったABS樹脂の外径4ミリ内径2ミリのパイプを切って、2ミリセルフタッピングネジをねじ込んでみた。おお、結構強く固定できそうだ。様子を見るだけの工作がどんどんエスカレートして、2階建ての基板が出来上がってしまった。最近は頭より手の動きの方が早い。アナログ回路はほぼ確定した(10/27/2011)そうは言っても、アナログ回路の検討は続けている。ウェブの情報を頼りに熱電対のセンサー部分のテストを進める。これまで参考にしているサイトの回路は、簡便に可変抵抗器の中点を、分圧点やオペアンプの入力にしているが、これだと変化が大きすぎて調整しにくい。片側だけ可変にして、一方を固定抵抗にし、調整し易いようにする。冷温側の測定センサーは手持ちのLM60である。このセンサーの1°Cあたりの電圧は6.25mVで、参考にしているサイトのセンサー(LM61)とは異なる。補正値を修正する必要がある。5VをVRに入れ、32.5mVが出るように多回転VRをまわす。うまくいった(0.0065倍)。微小電圧なので周りの外乱が心配だが、実際は、数百度(今のところ150°C近辺)の制御なので、余り気を遣う必要はないだろう。ブレッドボード(ミニ)だけれど結構安定している。次は、オペアンプの調整だが、その前に全体仕様をかためた。秋月で入手したK型熱電対は、1200°Cまで測れるが、もちろんこんな高温まで測るつもりはない。アクリル曲げ器に特化するなら200°C程度までで十分だ。欲を出して7~800°Cくらいにしておけば、半田ごてなどの温度測定にも使えるだろう。ATTiny861で決まりだ。2313はADコンバーターを持っていないし、温度制御のロジックを考えると、2Kのフラッシュでは少し不安だ。Tiny861のADコンバーターの基準電圧は、2.56Vと1.1Vの2種が選べる。オペアンプが使えるので当然2.56Vにする。分解能は、10ビット、1024ポイントある。一度単位で、0度から1024度までカバーできる。1度あたり2.5mVである。オペアンプは、熱電対の1°Cあたりの電圧、40.7μVを2.5mVにしてやると良い。61.425倍である。オペアンプ1段ではちょっと不安な倍率だがやってみることにする。ブレッドボードで少しづつ慎重に測定する。このあいだ作ったDVMが思わぬところで役に立った。こいつは200mVフルスケールを4桁表示してくれる。分解能は0.1mVもある。入力オフセット電圧の測定でつまづく。ボルテージフォロワーでそれぞれのオフセット電圧(LM358は3mv、LMC6482は6mV)をだしたのは良いが、方眼紙に描いたグラフで入力電圧と出力をプロットしたら、オフセット電圧がマイナスになってしまう。この2つのオペアンプ以外のオペアンプは、どういうわけか微小な入力が入ると、出力が電源電圧まで上がる奇妙な現象に悩まされる。アナログは本当に難しい。レイアウトは出来た(10/28/2011)選んだケースはやはり小さすぎてAC電源の制御まで一緒に入れることは無理なようだ。5Vの電源を、この小さなケースに組み込むことはとても不可能だ。5Vの電源と、SSR(ソリッドステートリレー)などのAC制御部は別に作ることにする。出来たら、すでにある調光器キットのケースに入れたい。ヒーターの制御をどうするか迷っている。手持ちに秋月のSSRキットがあるので、これで制御するつもりだが、単なるon/off制御ではなく、折角マイコンで制御するのだから、もう少しエレガントな制御をしてみたい。あれこれウェブで情報を漁った。すると、ゼロクロスのSSRを50HzのPWMでドライブして電源制御をやっているウェブサイト(http://www.geocities.jp/neofine9/work/solder2/solder2.html)を見つけた。これこれ、まさしく所長がねらっていた制御の方法だ。on/off制御では、温度のようなやたらに時定数の大きい制御は、よほどうまくやらないと制御不能になる。PWMで電力を自在に変えられれば制御はずっと楽になる(はずだ)。これで秋月でずいぶん前(3年前)にLAN電源制御用として買ったSSRも存在意義を認められることになった(リレーではPWMできない)。用もないのに買ったロータリーエンコーダーも、これで遂に日の目を見る。今度のプロジェクトは部品箱に眠っていたTiny861も含めて、当研究所の在庫一掃セールのような感じになってきた。いずれにしても温度設定と温度制御のところは、まだ先の話である。温度測定を完成させよう。それでもレイアウトは、温度設定のための空き地を考慮しながら配置する。ピンが足らないことに気づく(10/29/2011)プラットフォームのCPUをTiny861に決めて、アートワークに入ってから大事なことに気づく。7セグLED(7ピン)の現在温度3桁、設定温度3桁の6ヶをドライブすれば、それだけで13本。Tiny861で自由になるGPIOは、11本しかない。これに、ここまで気がつかなかったとは、お馬鹿な話である。Mega168あたりでもぎりぎりだ。7セグLEDのドライブ以外に、ヒーター制御出力、ロータリーエンコーダ、あわせて15ピンはいる。Mega168のGPIOは17本でなんとか入るがこの程度のアプリにMegaを使うのは抵抗がある。いうので、持ち出したのが、このあいだの電光掲示板の予備にとってあったシフトレジスター74HC595である。これだと、セグメント7ピンを、ラッチ、クロック、データの3本でドライブできる。LED基板のほうに置けばケーブルも減らせるのだが、スペースが意外とない。ロータリーエンコーダーが結構、かさばりなかなかうまくいかない。ことでレイアウトを決定する。いやあ、ますます、在庫一掃の工作になってきた。ピンが足らない(11/1/2011)HC595を使うことになったので、いきなり基板に組むのを止めてブレッドボードで、この前のFPGAの練習のため作ってあった6ヶの7セグLED基板を使ってソフトのテストをすることにした。ソフトそのものは、これまでの寄せ集めでそれほど時間をかけずに作ることが出来た。3つの7セグLEDだけで測った温度が表示されるように組む。ありゃあ、UARTから字化けしたゴミデータが延々と出力されてしまう。ISP-UARTの受信ピンがHC595の制御データの出力になっている。デバッグ用のUARTは受信をエコーバックしているので、UARTそのものを大きく変えないとこのままではテストにならない。マイコンからの出力をPCコンソールに表示させるだけだから構わないと思ったが、エコーバックを忘れていた。UARTを改修して、このまま進めることもできるが、温度制御のところまで考えると、PC側から何らかの指示で動作を選べるようにしておきたい。対策を考えているうちにふと気づいた。HC595の8ビットのシフトレジスターは、7セグなので1ビット余って、空振りしている。この1ビットのところに、7セグのコモン側の制御を入れてやれば、1ビットを押し込められそうだ。8回まわっている7セグのエレメントの拾い出しを7つで止め、最後のシフトに、コモンのピンのon/offを入れてやる。ふむ、うまく行きそうだ。