獣医さんの電子工作とパソコン研究室 |
60.切り忘れ防止タイマ付きハンダ鏝台の製作(R8C/29)
|
■ 切り忘れ防止タイマが欲しい! |
ハンダごでの電源を時々切り忘れてしまい。翌日になってヒヤっとした思いが今までに何度かあります。半田鏝のコンセントには通電のパイロットランプもつけてあるのですが、うっかりということがあるので、時限タイマを欲しいと思っていました。 |
■ ブレッドボードで実験。 |
|
最終的な回路は下図のようになりました。
ブレッドボードで7segLEDの点灯実験から始め、ロータリーエンコーダーの部分やタイマの部分など、一つ一つを実験しながらプログラムを組んでゆきました。 |
■ R8C/28,29のデバッグ、書き込みについて |
デバック、書き込み時は パソコンからレベル変換したRS232Cの信号をP4_5にRXD、P3_7にTXDを接続します。今回はオンチップオシレーターを使いますが、デバッグ・書込み時には発振子をつける必要がありますので、モジュールボードの発振子用の穴に20MHzのセラミック発振子を差し込んで実験しました(この場合、上の回路図ではロータリーエンコーダーが接続されており、プルアップされていますので、接続を外しておかなければなりません)。この状態で、MODEピンをGNDに落とせは、書き込み用のパソコンから通信できます。 オンチップデバッグ時の注意点がいくつかあります。 まず、オンチップオシレータを使わない設定が必要です。UART1関連のレジスタをアクセスしてはいけません。P4_7、P3_7へのアクセスはしないほうが良いようです。 そんなわけで、今回の例では実装時のプログラムのままではオンチップデバッグができませんので、一部分ずつ実験しながら全体のプログラムに組み立ててゆきました。 |
■ プログラム | |||
作成したプログラムを掲示します。 プログラムには細かくコメントを書き込んでありますので、見ていただければと思います。 |
|||
|
|
||
タイマAは10msごとの割り込みを発生し、LEDのコモンをドライブするようにしています。2桁ですがダイナミック表示となっていて、10msの間隔で1桁目と2桁目を交互に点灯させています。タイマAは同時に動作表示用のLED-DPの点滅に1秒のカウンタとしても使っています。 タイマBはSSRの制御用に20msごとの割り込みを発生しています。タイマAで兼用しても良かったと思います。この20msについては後で説明します。 ロータリーエンコーダーの部分はピカントCというPICのコンパイラのサンプルプログラムをそのまま使いました。ちよっとおかしな動作をすることがありますが、とりあえず設定用には使えます。 プログラム的にはロータリーエンコーダーを直接動かすと温度の設定、SETスイッチを押してからロータリーエンコーダーを動かすと時間を設定できるようにしてあります。 いずれもSETボタンで設定終了となりますし、一定時間ロータリーエンコーダーが動かなかった場合も設定完了となるようにしています。 |
|||
■ データフラッシュメモリの利用 | |||
設定値を記憶して、次に電源が入ったときには前回の設定値を読み出して利用するようにしました。これにはR8Cに内蔵されているデータフラッシュメモリを利用しましたが、よくI2C接続で使うEEPROM等とは性質が違い、一度書き込んだアドレスに対して、その部分だけを上書きしたり消去したりできません。消去はブロック単位でしかできないため、データブロックに対して全てのアドレスに書き込んだ時だけ消去して、新たなデータを書き込むという手法を取っています。ルネサスのアプリケーションノートにありますので参照してください。データフラッシュのプログラム(dataflash.h)はルネサスのアプリケーションノートのものを若干改造して使っています。 | |||
■ 温度調節機能について(波数制御による電力制御) | |
SSRを使った電力調節は、通常ACの正弦波の0Vを横切るところを検出して、そこから一部分の正弦波を切り取るような形でスイッチングするのが通常の電子スライダックです。 ACのON/OFFにSSR(ソリッドステートリレー)を使うつもりでいましたので、SSRを利用して簡単に温度調節が出来ないかと思案していたら、こちらのサイトを見つけました。 |
|
今回は、連続している正弦波を間引くという波数制御による電力制御で作ってみました。この場合も本来なら正弦波の0Vを検出して行うべきですが、SSRにゼロクロスタイプ(ONにしても必ず0Vから正弦波が始まる)を使うことで、マイコン内部で作った20ms(50kHz)のタイマを利用して、そのタイミングでSSRをコントロールするという簡易な手法をとりました。 |
|
これで、白熱電球をつなぐと、完全にチラチラしていて使い物になりません。ハンダ鏝のようなものなら、これでも温度コントロールが出来ると思いますが、正しいのかどうかわかりません。下の図は完成したものに白熱電球をつけてオシロで見た波形です。 意図したようになっています。 |
こちらは、実際にハンダ鏝先端に温度計をつけての 鏝先温度の実測値です。 テスターの温度センサをこて先にくくりつけただけの測定です。 意図した結果となっていますが、まだまだ検討の余地はあると思います。 |
|
■ ケース組み込みの様子 | |
ケースは古いCD-ROMのケースがちょうど良い大きさでしたので、これをを流用しました。 表面にはアルミ板でパネルを作り、LEDやスイッチなどはエポキシ系の接着剤で固定しました。 穴開き基板への部品の実装はEAGLEで下図面を作ってから行いました。このようにすることで、かなり間違えが減らせるようになりました。 |
|
トランスはACアダプタのジャンクです。 電源回路にラグ板を使いました。簡単な回路には便利ですね。 |
右下が秋月のSSRキットです。 |
裏から見たらCD-ROMです。 上側はアルミテープを貼りました。 黄色く見えるのはブザー用の圧電素子です。マクドナルドのおもちゃから取ったものです。 |
書き込んでいる様子です。 手前には実験に使ったボードが見えています。 |
下の写真は書込み時の様子です。書込み時には発振子が必要ですので、セラロックは基板に差し込んでいるだけです。 |
今回は、R8C/29を使って製作しましたが、ピン数の多いR8C/27を使ったほうが、デバッグも簡単に出来ます。ジャンクCD-ROMドライブのケースを使った製作はWebラジオに続き2品目ですが、わりと使いやすく形も良いので、また、何かの時に使いたいと思っています。 |
Last up date 2010/02/25 | |