トップページ     電子回路のページのトップ

 半田鏝コントローラ

 画像をクリックすると拡大表示されます。(全部ではありません。)
 拡大画像からはブラウザの「←戻る」ボタンで戻ってください。


 製作の理由

 半田鏝は、かなりの頻度で使用しています。
 その際、切り忘れ防止のタイマーと、出力を絞る為の位相制御ユニットを組み合わせて使っていました。
 (電子回路やソフトウエア→その他→半田鏝で紹介しています。)
 今回、これら二つのユニットを一つにまとめたコントローラを製作しました。
 タイマーに関しては、それほど問題はなかったのですが、位相制御ユニットには不満がありました。
 書き忘れましたが、出力を絞るのは、過温度になると鏝先が酸化して半田の乗りが悪くなり、寿命も短くなる為です。


 位相制御ユニットの不満

位相制御電流波形

 写真は現在使用中の位相制御ユニットの電流波形です。(センターが少し、ずれています。)
 可変抵抗とコンデンサーによる時定数を変化させ、電流が立ち上がるタイミングを調整しています。
 可変抵抗の回転角と出力は直線関係ではなく、調整範囲は狭いです。
 写真で分かるように、電流の方向により、立ち上がる位相が異なっています。
 これは、トライアックのゲート感度が極性によって異なっている為と予想します。
 さらに大きな問題は、位相制御の場合、電流が急激に立ち上がる為、高調波が発生し、鏝が振動しているのが感じられる ということです。
 近くにAMラジオがあれば、雑音も入ります。
 私は安くて使い易いニクロム線ヒーターの半田鏝を使っているのですが、ヒーターがよく切れます。
 位相制御で電力を絞れば、ヒーターが長持ちしそうに思いますが、逆に寿命が短くなったような気がします。
 これは鏝の振動と関係があるのではないかと思いました。

 今回のコントローラの特徴

 今回は位相制御を止め、PWMとゼロクロスSSRを使った間欠制御にしました。
 必ず0Vでオンするので雑音も発生せず、B型カーブの可変抵抗の回転角と出力が、ほぼ比例します。
 ただし、約1秒周期で出力がオンオフするので調光やモーターの制御には使えません。
 ヒーター専用です。
 タイマーは20分、40分、60分の3段階に設定出来ます。


ハードウエア

 回路図をクリックすると拡大表示されます。
 拡大図から本文に戻るにはブラウザの←戻る釦を使用してください。

回路図

 電源はトランスレスです。
 トランスを使った方が確実ですが、最近、ピッタリの容量で安いトランスが入手しづらくなっています。
 2.2UFのコンデンサーを2個直列にしているのは、回路のグランドを少しでもACラインから分離しようとする 気分的なものです。
 1.1UFのコンデンサー1個と同じですので、1UFのコンデンサー1個でも動作するはずです。
 今回の回路定数では50Hzの時25mA、60Hzの時30mA程度、流せるはずです。
 (実測ではなく、SPICEシミュレーションです。)
 この回路の消費電流は20mAMAXでした。(DC電源による実測です。)
 デバッグ、動作確認は必ず、別途用意したDC電源で行います。
 回路図のようにショートピンかスイッチで切り替えるようにしておきます。
 それから、3端子電源は品種により、立ち上がる瞬間に数十mAを必要とするものがあります。
 この回路では、この電流を流せません。
 例を挙げると、LM2931Z−5は永久に立ち上がれません。(失敗を経験済み)

 SSRは秋月の25Aキットを使用しています。
 個別に部品を集めるのは面倒ですので、重宝します。
 ただし、フォトカプラの入力側に入っている330Ωは470Ωに変更しています。
 これは、電源に余裕が無いため、少しでも消費電流を減らす目的です。
 キットのフォトカプラを実験したところ、入力電流が最低3mAで負荷がオンしました。
 最初の330Ωでは約10mA、470Ωでは約7mA流れます。
 それからT1端子とゲートの間に22KΩの抵抗を入れました。
 これはフォトトライアックがオフの時、トライアックのゲートが浮いてしまうことを嫌った気分的なものです。
 R13の150Ωに比べ、十分大きい値でないと、トライアックがオン出来ません。

 制御はPIC16F88で行っています。
 出力設定値は電源電圧を可変抵抗で分圧した値をAD変換しています。
 出力はSSRにPWM波形を送っています。
 PWMの周期はソフトウエアタイマーで1024mSに設定します。
 デューティーはAD変換値(最大で1023mS)をそのまま使用しています。
 (わずかに+側にシフトしていますが)
 これによりPWMの分解能は1mSとなりますが、実際にはSSRが0クロスであるため、60Hzの場合、8mS程度 になるはずです。
 出力LEDの点滅具合を見れば、だいたいのデューティーは分かります。
 作業を中断するときのために、待機スイッチを設けました。
 オンにするとデューティーが設定値の1/2となり、鏝先の酸化を防ぎます。
 オフにすれば、元のデューティーに戻ります。

 通電時間は3位置のスイッチで20分、40分、60分に設定出来るようにしてあります。
 センター(オフ)で20分、下に倒して40分、上に倒して60分です。
 CPUのクロックは内部CR発振ですので、正確ではありませんが、時間精度は問題になりません。
 実測では60分の設定で、誤差3秒でした。
 通電はスタート釦を押すことにより、開始されます。
 通電中に開始釦を押すと、経過時間がクリアされ、0から設定時間までの通電になります。(再トリガ:74123と同じ)
 通電中に時間設定スイッチを変更するとオフするようにしてあります。
 再度、スタート釦を押せば良いだけの話です。
 残り時間が3分以内になると、緑色のLEDが点滅します。
 作業が長引きそうな時はスタート釦を押せば時間が延長されます。
 通電終了で5秒間ブザーが鳴ります。
 作業を継続する場合、冷えてしまわないうちに再度、スタート釦を押します。
 ブザーは圧電ブザーを使用したので、発信周波数を作らなければなりません。
 ハードウエアのPWMで4KHzのパルスを発生させています。
 圧電ブザーは周波数により、音圧が変化します。
 秋月で買った圧電ブザーは4KHz付近で最も音が大きくなりました。


ソフトウエア

 開発ソフトはMikroCの評価版を使用しました。
 評価版ではROMが2Kワードまで使用出来ますが、今回のプログラムは1Kワード以内でした。

   ファームウエアのダウンロード (ZIP圧縮されています。)

 ダウンロードしたファイルにはプロジェクトファイルを含んでいませんので、新規にプロジェクトを作成し、ソースファイルと ヘッダファイルをプロジェクトに追加してコンパイルしてください。
 プロジェクトファイルはコンパイラのバージョンやパスが異なるとエラーになる場合があるので、省きました。
 ソースファイルは複数に分割されていますが、そのうち、solder2.c にメインルーチンが収納されています。
 尚、コンパイル済みのhexファイルも別途、収納されています。

 adconv.c
 AD変換ルーチンです。
 MikroCの組み込み関数は使わず、レジスタ操作しています。

 output.c
 出力関連の関数、動作シーケンスが書かれています。

 solder2.c
 メインルーチンとスイッチ入力関係の関数が書かれています。
 スタート釦のみチャッタ取りをしています。
 チャッタを取らなくても動作上は問題無いのですが、通電を開始させるスイッチですので、念のためチャッタ取りを しています。
 MikroCではコンフィギュレーションをソースファイルに書けないので、先頭部分でコメントにしてあります。
 コンフィギュレーションはプロジェクトに設定しなければなりません。
 要点として、
 ・ ウオッチドッグはプログラムでオンしているので、コンフィギュレーションではオフにしておく。
 ・ クロック源はINTRC_IOとする。
 他はデホルトとで良いと思います。
 CCP1の出力端子はRB0(デホルト)にしておいてください。

 timer.c
 ソフトウエアタイマーのサービスルーチンとタイマー1割り込み関数が書かれています。

 gloval.h
 今回、ソースファイルが分割されているので、複数のファイルで使う型、変数、関数はここで宣言しています。
 実装は各ソースに分配していますが、global.cを作って、ここにまとめた方が良いかもしれません。

 solder2.hex
 コンパイル済みのオブジェクトファイルです。
 このファイルはこのまま、単独で使用します。
 書き込みは秋月のライターで行うか、MPLABにダミーのプロジェクトを作ってhexファイルをインポートすれば、 純正のツールでICSP端子から書き込むことが出来ます。


 製作したコントローラ

装置外観 装置内部
装置外観装置内部

 動作結果

 まだ、長時間、使い込んだ訳では無いですが、機能的には意図したものが出来ました。
 可変抵抗値の角度と出力の関係が感覚的に掴みやすく、使い勝手は良いと思います。

間欠制御電流波形
 上の写真は動作時の電流波形です。
 間欠制御の様子が分かります。
 この波形は 電子回路やソフトウエア→測定器、ロガー→電流モニター で紹介したアダプターを 使用して計測しました。
 簡単に作れるので用意しておくと便利です。

 バグ情報

 ダウンロードしたソースファイルを2011年3月現在の最新の環境(MikroC PRO for PICVer4.60) でビルドした場合、エラーが発生します。
 原因は同一変数名の特定文字で大文字、小文字が混在してしまった事にあります。
 MikroCの旧バージョンでは大文字、小文字の区別が出来なかった為、そのまま通ってしまった訳です。
 従って、新しい環境でも「大文字、小文字を区別する」のチェックを外せば通ります。
 しかしながら、ソースを修正するのが本筋と思います。
 場所は timer.c 60行目 if(startf) m_tics ++; を if(startF) m_tics ++; に修正すれば通ります。
 MikroCでは細かい仕様が少しずつ変化していますので、今後のバージョンでは、さらに別のエラーが発生する可能性 がありますが、常にメンテナンスは出来ません事を了承願います。
 尚、HEXファイルの方はチップが変わらない限り、今後も、そのまま使えます。


トップページ  「電子回路」のトップ