近年 面実装のパーツが多くなり、はんだ付けが困難になってきましたので、リフローを自作します。
本リフローは、ホットプレートを利用し、サーミスタでホットプレートの温度を測定し、SSRで温度を制御します。
マイクロチップのホームページには、リフロー時のプロファイルが載っていますので、これに合わせて PIC16Fで 制御します。
仕様
- リフロー構成:ホットプレートを利用
- リフロー設定温度:10~255℃(1℃単位)
- リフロー加熱性能:約1℃/Sec(max), 約0.5℃/Sec(typ)
- リフロー冷却性能:自然放射冷却(冷却手段はありません)
- はんだ付けプロファイル:9種類(共晶はんだ用、鉛フリー用)
- リフロー操作:温度設定またははんだ付けプロファイル選択後、スタート/ストップスイッチ押下
- LCD表示:リフロー設定温度、はんだ付けプロファイルNo、リフロー温度表示
- LED表示:リフローのスタート(点灯)/ストップ(消灯)を示す
- 動作モード:ノーマルモード または デバッグモード(コントローラのジャンパピンをショートさせる)
- 消費電力:700W
- 外形:約280mm*210mm*140mm
- 重量:?
材料
このリフローで使用するホットプレートは、ニトリで買いました。
商品名は、ミニホットプレート・KT-2131P(NT)です。
ホットプレートの裏側です。ヒーターと温度スイッチ、温度フューズがついています。説明書によると、温度フューズ240℃と書かれています。
裏ブタを外すと、ヒーターと、温度フューズ(240℃)、サーモスイッチ(195℃)が見えます。
以上から このホットプレートは 約200℃の温度で使用するように設計されているのがわかります。
今回250℃までのリフローを製作しますので、温度フーズ、サーモスイッチは取り外し、ACケーブルを直接接続します。
温度フューズを取り外しましたので、安全性の保護が入っていませんので、このリフローを使用する際には、必ず人が完全性を目視しながら使う必要があります。
AC電源のヒーターへの接続も、温度が高く ハンダづけができませんので、スリープを使用しカシメました。
使用したスリーブです
温度が高く、はんだ付けができませんので、 左図のセラミック端子台をホットプレートにビスで固定し、端子に サーミスタを取り付けます。
この端子台に耐熱ケーブルをねじ止めし、PICのOPアンプ入力に接続します。
耐熱電線に、耐熱チューブをかぶせ、コネクタに接続しています。
温度センサー
高耐熱の対応のサーミスタです
石塚電子の204CTで250℃まで温度が測定できます。
25℃で200kΩ、250℃で約1kΩの抵抗値となります。
温度と抵抗ー温度特性を下記のPDFに示します。
また温度と抵抗値はリニアではありませので、ソフトウエアでは、特性テーブルで処理を行っています。
下の温度センサー(サーミスタ:204CT-4)特性は、このサーミスタを10bitのAD変換器でAD変換した値です。
ソフトウエアでは、1024-adc_dataのグラフの値を使用しています。
ホットプレートの裏側に100円ショップで買った透明ケースを取付てみました。
本製作の心臓部のSSRキット(20A)です。
SSRキット_25Aタイプ外観
下の画像の「Hot PLATE」と書かれているプラスチックのケースを外し 上の画像のケースを作りました。また、ガラス窓がついた蓋も追加しました。
下図で リフローの全体の制御を行っているコントローラ基板が中央に配置しています。
コントローラの右には、+5Vを出力するスイッチングレギュレータがあります。
上(正面)には、LCDとロータリーエンコーダー、タクトスイッチ、LEDを配置しました。LCDは設定温度や、リフローの現在の温度などを表示します。
ロータリエンコーダーは、プロファイルの選択や、所望する温度を設定します。
タクトスイッチは、プロファイルの温度の開始/停止や、設定温度の開始/停止を行います。
LEDは上記タクトスイッチの開始時 点灯し、停止時 消灯します。
下には SSR基板、ヒートシンク、フューズホルダを配置しました。
横には、取っ手をつけています。
下図がコントローラで 真ん中にPIC16F1788があります。
PIC16F1788は、8bitCPUで、周辺回路にOPアンプ、ADコンバータを持っているため、このCPUを選択しました。
PIC16F1788の1ピンのそばにある6ピンのピンヘッダーは、PICKIT用のヘッダーでプログラムの書き込みに使います。
またその左側にある2ピンのピンヘッダーは、本リフローの動作モードを選択します。
写真では、ピンヘッダーのがショートピンで接続されていますので、デバッグモード( サーミスタvs温度データ(thermister_inv) や、profile1-9データの変更など)で動作しています。
ノーマルモード(通常の使用モード)の場合は、ショートピンを外してください。
サーミスターからの入力は、基板の左下から入力しPICのOPampに入力されます。
OPampの出力は、PIC内のADCでデジタルに変換します。
SSR基板です
回路図
reflow_circuitLCD表示
マイクロチップ 共晶はんだ/鉛フリーはんだ リフロー プロファイル
リフロープロファイルプロファイル
プロファイル | 規格 | はんだ | 負荷 | プレヒート | プレヒート | リフロー | リフロー |
No | 種類 | mm×mm | 温度(℃) | 時間(秒) | 温度(℃) | 時間(秒) | |
1 | マイクロチップ | 共晶 | 50*50 | 100-130 | 60-70 | 225-240 | 40-60 |
2 | JEDEC | 共晶 | 50*50 | 100-150 | 60-120 | 225-240 | 60-150 |
3 | JEDEC | 共晶 | 100*100 | 100-150 | 60-120 | 225-240 | 60-150 |
4 | 未設定 | 共晶 | |||||
5 | 未設定 | 共晶 | |||||
6 | マイクロチップ | 鉛フリー | 50*50 | 150-200 | 50-90 | 225-260 | 50-80 |
7 | JEDEC | 鉛フリー | 50*50 | 150-200 | 60-180 | 245-260 | 60-150 |
8 | JEITA | 鉛フリー | 50*50 | 150-180 | 30-60 | 220-250 | 30-60 |
9 | 未設定 | 鉛フリー |
温度制御(PID)方法
本リフローのPID温度制御は PICFUNの後閑先生が書かれているPIDの内容を参考に 行いました。
PID制御の計算式は
e0(今回の偏差) = 目標温度 – 現在の温度
dMV0(今回の操作量差分) = Kp*(e0 – e1) + Ki*e0 + Kd*(e0 – 2e1 + e2)
または
dMV0(今回の操作量差分) = 100/Pb{(e0 – e1) + e0/Ti + (e0 – 2e1 + e2)*Td}
MV0(今回の操作量) = MV1(前回の操作量) + dMV0
ここで e1:前回の偏差、e2:前々回の偏差
Kp:比例感度(または比例ゲイン),Pb:比例帯 = 100/Kp
Ki:積分計数、Ti:積分時間 = Kp/Ki
Kd:微分係数、Td:微分時間 = Kd/Kp
1)K(定常値)、L(無駄時間)、T(時定数)を求める(CHR法・・・ステップ応答から求める)
1-1)ホットプレートの時間vs温度特性グラフのS字曲線の変曲点上に接線を引く
1-2) ホットプレートの時間vs温度特性グラフの 時間が無限大の時の定常値Kを予測する(300℃とした)
1-3)定常値Kの63%のに当たる値になったところから、無駄時間L、時定数Tを求める。
2)Kp,Ki、Kdを求める。(計算式は、PIC FUNより転記)
ここで プロセスゲインK=300℃/24.2℃(初期温度)= 0.92(92%)、T=150秒、L=10秒 で計算する
制御動作種別 | Kpの値 | Kiの値 | Kdの値 |
P(比例)制御 | 0.3~0.7T/KL =4.9~11.4 | 0 | 0 |
PI制御 | 0.35~0.6T/KL =5.7~9.8 | 0.3~0.6/LK =0.0326~0.0652 (Ti=87~306) | 0 |
PID制御 | 0.6~0.95T/KL =9.8~15 | 0.6~0.7/KL =0.0652~0.0761 (Ti=129~230) | 0.3~0.45T/L =4.5~6.75 (Td=0.3~0.7) |
3)実制御
PID計算した結果は、heater_on_time(0~200)の値をを変えることによりホットプレート内のヒーターON時間を制御する。
P動作から上記パラメーターで実験すると、Kp=1の時、オーバーシュートが発生しない最短時間で収束した。(上の表ではKp=4.9~11.4なので、大きな違いがある。理論式から実際の制御で何かが抜けているのかもしれない?)
または、heater_on_timeの最大値200を入力した際、ホットプレートのヒーター温度が最大になりその時のAD変換後のデジタル値が約1000から 1000/200=5となりKpの値4.9に近いことから 正しいのかもしれない。
次に、PI動作では、Kp=1、Ti=300で最も良い結果が得られた。
PID動作では、heater_on_time(操作量)の値が、安定しないため、PI動作で制御している。
専門書によると、今回のはんだ付けプロファイルのように、目標値が変わる「追値制御」にはPI-D(測定値微分先行形PID)または、I-PD(測定値比例微分先行形PID)が適していると書かれている。
最終的に このリフローはPI動作で制御しており、Kp=1,Ti=300から計算式は
e0(今回の偏差) = 目標温度 – 現在の温度
dMV0(今回の操作量差分) = (e0 – e1) + e0/300
MV0(今回の操作量) = MV1(前回の操作量) + dMV0
ソフトウエア
ソースコード
「リフロー ファームウエア」のファイル名が「PIC16F1783_reflow.ZIP」となっていますが、中身はPIC16F1788になっています。最初PIC16F1783でソフトエアを作成していましたが、メモリの容量が不足し、途中でPIC16F1788に変更しました。
ソースコード内のサーミスタvs温度データ(thermister_inv)の配列は、サーミスタの個体差や取付方法によって、値が違いますので、本リフローをデバッグモードで動作させ、ソースコードを変更する必要があります。
また、profile1からprofile9の配列も、実験しながらソースコードの配列を決定してください。
最後に、本リフローのホットプレートは、PID制御のP(比例)とI(積分)を利用して温度を制御しています。最適なKp、Tiの値ではありませんので、チャレンジしてみてください。
性能試験
リフロー
PIC32MZ_DAのプリント基板とステンシルが届きましたので、実際に上記の「ホットプレートを利用したリフロー」で はんだ付けを行います。
治工具
ー50℃~1300℃まで測定可能な温度計(TM-902C)です。aitenndoで買いました。
温度計のセンサー部を、測定場所に接着させる耐熱テープ(ポリイミドテープ)です。秋月で買いました。
ソルダーペースト CG-30です。aitendoで買いました。保存温度が3~13℃と書かれていますので冷蔵庫にしまっています。
チップ部品をつかむ逆作用ピンセットです。webを見ると 必須と書かれていましたので秋月で買ってみました。
上段は ソルダーペーストを塗るためのスクレーパーです。100円ショップで買いました。
中段は 携帯用吸着ピンセットです。秋月電子で買いました。
下段は PIC32MZ_DA CPUです。DiGi-Keyで買いました。
工程1:プリント基板とステンシルの位置合わせ
下の画像のように クリップでプリント基板とステンシルの位置合わせを行っています。
WEBを検索すると、プリント基板及びステンシルの同じ位置に小さな穴を4隅にあけ、画鋲で固定するのを見ました、こちらのほうがずれなくていいと思います。次回 やってみようかな!
プリント基板とステンシルの位置合わせを実体顕微鏡で チェックしました。
工程2:ステンシルにソルダーペーストを塗る。
ソルダーペーストをスクレーパーで塗りました。3回 スクレーパーでソルダーペーストをのばしました。リフローした後を見ると、ピン間ではんだブリッジが発生していますので、ソルダーペーストが多いようです。
ステンシルを取り外しました。CPUの中央に、サーマルパッドのはんだが見えます。
パーツを載せる:ソルダーペーストの上にパーツを載せます。
CPUの天面には、耐熱テープを張ります。 携帯用吸着ピンセット でCPUを吸着すると、表面の凸凹で吸着できませんので、テープを張ることで、吸着ができるようになります。
表面実装のパーツをすべてのせました。CPU、水晶振動子(24MHz)、12PF*2個、1MΩ、1kΩ、10kΩ、EMIフィルタ1μF*14個 です
リフローをします
ソルダーペースト上にパーツが載ったプリント基板をリフローにセッチングします。プリント基板の捨て基板上に温度計のセンサーを耐熱シールで貼り付けます。
リフローができました。何か所かはんだブリッジがあります。