DIY SMDリワークステーション:Arduino制御ホットエアガンでプロ級基板修理
必要な部品と材料
| Arduino Pro Mini 328 5V/16MHz | ×1 |
| 16x2 LCD(I2Cモジュール付き、白文字/青背景) | ×1 |
| ロータリーエンコーダ(プッシュボタン付き) | ×1 |
| ホットエアガンハンドル(858D互換、K型熱電対・700Wヒータ・24Vファン内蔵) | ×1 |
| ハンドルホルダー&ノズルセット | ×1 |
| パワートライアック BTA12-600B | ×1 |
| MOSFET IRFZ44N(ファンPWM制御用) | ×1 |
| オペアンプ MCP602(熱電対増幅、レールツーレール) | ×1 |
| フォトトライアックドライバ MOC3052 | ×1 |
| フォトカプラ 4N25(ACゼロクロス同期用) | ×1 |
| ブリッジ整流ダイオード | ×1 |
| 高速リカバリダイオード FR107 | ×1 |
| コンデンサ 0.01µF 400V、100nF×6、1000µF 35V等 | 各種 |
| 抵抗各種(39Ω, 33kΩ×2, 330Ω, 220Ω, 1kΩ×3, 470Ω, 10kΩ×3, 100kΩ×2, 500kΩマルチターン×2) | 各種 |
| ブザー(アクティブ/パッシブ選択可) | ×1 |
必要な工具・ソフトウェア
- はんだごて、テスタ、オシロスコープ(あると便利)
- Arduino IDE
- Autodesk Eagle(PCB設計用、EasyEDAでも可)
プロジェクト概要
市販の858D互換ホットエアガンハンドルをArduino Pro Miniで制御し、PID制御による精密な温度管理を実現するリワークステーションを自作します。商用機並みの性能を、入手しやすい部品と自作PCBで低コストに構築できます。
システム構成(3つのブロック)
- インターフェース部:I2C LCD(設定温度、実測温度、ファン速度、出力%、ハンドル状態表示)+ロータリーエンコーダ(温度/ファン速度設定、メニュー操作)
- センサ部:K型熱電対(MCP602で増幅、ゲインは500kΩマルチターンで調整)+リードスイッチ(ハンドル着脱検知、ホルダーに戻すと加熱停止)
- 制御部:
- ファン:MOSFET(IRFZ44N)でPWM制御(D9、31.25kHz高周波)
- ヒータ:トライアック(BTA12)をMOC3052で駆動、4N25で商用電源ゼロクロス同期を取り、半波サイクル単位で通電制御(位相制御ではなくバースト火制御)。ノイズが少なく、ヒータ寿命にも優しい
ハンドル配線(7線、858D互換)
| 線色/コネクタ | 機能 | 接続先 |
|---|---|---|
| 3ピン:赤 | 熱電対 + | MCP602入力 + |
| 3ピン:緑 | リードスイッチ | Arduino D8 (INPUT_PULLUP) |
| 3ピン:黒 | 共通GND | GND |
| 2ピン:青 | ファン + | MOSFETドレイン(24Vライン) |
| 2ピン:黄 | ファン - | GND |
| 大2ピン:白/茶 | ヒータ(極性なし) | トライアック負荷側(商用電源直列) |
※ハンドルにより配線色が異なる場合があります。テスタで導通確認の上、接続してください。
PCB設計・製作
回路が複雑なため、ユニバーサル基板より専用PCB製作を強く推奨します。EagleファイルおよびEasyEDAプロジェクト(リンク)を公開しています。JLCPCB等で発注可能です。
ファームウェアの特徴(v1.4)
- PID制御:目標温度に対し、ヒータへの半波投入数を動的調整(分母2048で固定小数点演算)
- 3点校正:200/300/400℃の基準点で実測温度と内部ADC値を対応付け、線形補間で全域カバー
- チューンモード:初回セットアップ時に400℃でヒータ出力を手動調整し、熱電対増幅ゲイン(マルチターンVR)をADC≒900に合わせるガイド機能
- 自動冷却:ハンドルをホルダーに戻すと加熱停止、ファン継続で50℃以下まで冷却完了をビープ音で通知
- 設定保存:EEPROMに校正データ・プリセット温度・ファン速度・自動電源オフ時間を保存(レコード管理で耐久性向上)
- メニュー構成:スタンバイ→メイン(温度制御)→パワーモード(手動出力制御)→セットアップ(校正/チューン/保存/キャンセル/デフォルト復元)
- 安全機能:ヒータ断線/熱電対異常検知で「Failed」表示・加熱停止
セットアップ手順(初回必須)
- デフォルト値読み込み:セットアップメニュー「reset config」実行
- チューンモード:「tune」選択→エンコーダでヒータ出力手動調整し外部温度計で400℃に合わせる→マルチターンVRでADC値≒900に調整→長押しで完了
- 校正:「calibrate」選択→200/300/400℃各点でPID制御到達後ビープ→外部温度計実測値をエンコーダ入力→全点完了後長押し
- 保存:「save」でEEPROMへ書き込み
コード構成(主要クラス)
完全なスケッチはGitHub(リンク)参照。ここではアーキテクチャを解説。
CONFIG/HOTGUN_CFG:EEPROMレコード管理(チェックサム付き)、校正データ3点パック(30bit)、プリセット管理BUZZER:アクティブ/パッシブ両対応、短/長/二重/失敗ビープパターンDSPL(LiquidCrystal_I2C継承):カスタム文字(℃、ファン、パワーアイコン)生成、各種表示メソッドHISTORY/EMP_AVERAGE:リングバッファ履歴と指数移動平均でセンサ値平滑化PID:反復式PID(U_n = U_{n-1} + Kp·ΔX + Ki·e + Kd·Δ²X)、係数Kp=50, Ki=16, Kd=50(分母2048)FastPWM_D9:Timer1位相周波数正しいPWM、31.25kHz(ファン駆動用)HOTGUN(PID継承):ヒータ制御ステートマシン(OFF/ON/FIXED/COOLING)、ゼロクロス同期(syncCB())、半波バースト火制御
⚠️ 重要な注意事項
- ファームウェア書き込み時は商用電源を切り離すこと! 非絶縁ファン電源がPCのUSB経由で破損する恐れあり
- EasyEDA版PCB使用時は、リードスイッチピンをD8、ブザーピンをD6に変更してください(元コードはD5/D6)
- 高電圧部品(トライアック、ブリッジダイオード、ヒータ配線)はクリアランス・クリープ距離を確保、適切な絶縁処理を
- 熱電対極性(赤=+、緑=-が一般的)を確認、逆接続で負温度表示になる
まとめ
Arduinoで「バースト火制御+PID」という本格的なヒータ制御を実装した優れた事例です。市販ステーションの修理・改造ベースとしても、ゼロからの自作としても参考になります。特にゼロクロス同期による半波単位制御は、位相制御に比べノイズが少なく、トライアック・ヒータ双方に優しい手法です。PCBデータとファームウェアが公開されているため、部品を揃えれば再現性高く構築できます。SMD実装・修理の幅が広がる一台、ぜひ挑戦してみてください。
製造プロセス
- 液晶ディスプレイ(LCD):技術、製造、将来展望
- DIYサーモカム:教室アイデアからグローバル製品へ
- Raspberry Pi 2とADS-WS1で屋外気象観測ステーションを構築
- Raspberry Piで気象観測ステーションを構築し、日次天気データをメール送信
- DIYホラー肖像画:Raspberry Piジャンプスケアプロジェクト(更新版)
- 高度気象ステーション v2.0:温度・気圧・湿度・高度のリアルタイム監視
- DIY UVC滅菌ボックスキット:低コスト・簡単自作の医療・日用品用紫外線殺菌器
- Arduino Nanoで20kHzオシロスコープを自作:Nokia 5110 LCD搭載・簡易DIYガイド
- Arduino UNOで作るLCDアニメーション&ゲーム入門
- Arduino Nanoで自作オシロスコープ(10Hz〜50kHz)128×64 LCD搭載
- Arduino Nano製ウェザーステーション:気圧・温湿度・UV・時計表示付き