Arduinoとホットプレートを使ったリフロー装置(2号機)の製作(8)

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (1) (2) (3) (4) (5) (6) (7) (8) 次のページへ
2016年10月03日 公開。

9. 温度プロファイルの編集の仕方

温度プロファイルを決める11個のパラメータと温度プロファイルの名称は、温度制御装置のスケッチ中に書き込まれています。これらのパラメータや名称を編集すると、温度プロファイルを微調整したり、新しい温度プロファイルを作成したりする事ができます。以下にその方法を説明します。

表4に、温度プロファイルを決定する全パラメータと、Pbフリー(GN)プロファイルにおける各パラメータの値を示します。

表4、Pbフリー(GN)で設定されているパラメータ
記号 名称 画面表示の
際の名称
profile
構造体の
メンバ
Pbフリー(GN)
での値
単位

プロファイル名称
メイショウ
name
Pbフリー(GN)

tch 加熱チェック時刻 チェック ジコク TimeCheck
120

Tch 加熱チェック温度 チェック オンド TempCheck
100
TP 予熱時制御温度 ヨネツ オンド TempPreheat
150
ΔTP 予熱時温度制御幅 ヨネツ ハバ WidthPreheat
40
ΔtP1 予熱時アイドル時間 ヨネツ アイドル IdlePreheat
16
ΔtP2 予熱時間 ヨネツ ジカン TimePreheat
90
TR リフロー時制御温度 リフロー オンド TempReflow
220
ΔTR リフロー時温度制御幅 リフロー ハバ WidthReflow
40
ΔtR1 リフロー時アイドル時間 リフロー アイドル IdleReflow
9
ΔtR2 リフロー時間 リフロー ジカン TimeReflow
35
TC 冷却終了温度 レイキャク オンド TempCool
60

温度制御装置のスケッチ内では、profileという構造体が定義されています。この構造体は、表4に示したパラメータを格納するための構造体です。

リスト2、profile構造体の定義COPY
struct profile { // プロファイル設定の構造体
  const char *name;     // プロファイルの名称
  uint16_t TimeCheck;   // 加熱チェックの時刻[秒]
  int16_t TempCheck;    // 加熱チェック時の温度の下限[℃]
  int16_t TempPreheat;  // 予熱温度の中央値[℃]
  int16_t WidthPreheat; // 予熱温度の幅[℃]
  uint16_t IdlePreheat; // 予熱の初期にヒーターを止める時間[秒]
  uint16_t TimePreheat; // 予熱時間[秒]
  int16_t TempReflow;   // リフロー温度の中央値[℃]
  int16_t WidthReflow;  // リフロー温度の幅[℃]
  uint16_t IdleReflow;  // リフローの初期にヒータを止める時間[秒]
  uint16_t TimeReflow;  // リフロー時間[秒]
  int16_t TempCool;     // 冷却終了温度[℃]
};

各温度プロファイルは、ProfileListというproflie構造体の配列に記録されています。PROGMEM const修飾子が付いているので、RAMではなく、ROM(フラッシュメモリ)に格納されます。

リスト3、ProfileList配列の定義(一部)COPY
PROGMEM const profile ProfileList[PROFILE_LIST_LEN] = {
  { // 0
    ProfileName0, // name         プロファイルの名称
    120,          // TimeCheck    加熱チェックの時刻[秒]
    100,          // TempCheck    加熱チェック時の温度の下限[℃]
    150,          // TempPreheat  予熱温度の中央値[℃]
    40,           // WidthPreheat 予熱温度の幅[℃]
    16,           // IdlePreheat  予熱の初期にヒーターを止める時間[秒]
    90,           // TimePreheat  予熱時間[秒]
    220,          // TempReflow   リフロー温度の中央値[℃]
    40,           // WidthReflow  リフロー温度の幅[℃]
    9,            // IdleReflow   リフローの初期にヒータを止める時間[秒]
    35,           // TimeReflow   リフロー時間[秒]
    60,           // TempCool     冷却終了温度[℃]
  },

 // 途中略 //

}; // ProfileList

リスト3を見ると、表4のプロファイル名称以外の全てのパラメータが順に設定されている様子が分かるでしょう。

プロファイル名称については、別の所で設定されています。

リスト4、プロファイル名称の定義COPY
// プロファイル名
PROGMEM const char ProfileName0[]="Pbフリー(GN)";
PROGMEM const char ProfileName1[]="Pbフリー(HG)";
PROGMEM const char ProfileName2[]="ユウエン(GN)";
PROGMEM const char ProfileName3[]="ユウエン(HG)";
PROGMEM const char ProfileName4[]="ベーク 120゚C";
PROGMEM const char ProfileName5[]="テスト";
PROGMEM const char ProfileName6[]="プロファイル7";
PROGMEM const char ProfileName7[]="プロファイル8";

これらの設定を編集すれば、温度プロファイルの微調整や追加が行えます。新たな温度プロファイルを追加する場合は、プロファイル7プロファイル8を上書きしてください。

登録する温度プロファイルの種類の数は、PROFILE_LIST_LENというマクロ定数で指定しています。

リスト5、温度プロファイルの種類の数の定義COPY
#define PROFILE_LIST_LEN 8 // プロファイルの種類

デフォルトでは8を指定していますが、この数を増やし、ProfileList配列に追加する温度プロファイルのパラメータを追加すれば、温度プロファイルを増やすことができます。ROM容量に余裕のある限り、温度プロファイルを追加できます。

なお、TR(リフロー時制御温度)をTP(予熱時制御温度)以下の値に設定すると(普通は0に設定する)、予熱ステージの次に加熱ステージ2には進まず、冷却ステージに進みます。この場合、ΔTR、ΔtR1 、ΔtR2の3つのパラメータの値は無視されます。この機能は、ベーク 120゚Cの温度プロファイルで利用しています。

広告

10.最後に

ホットプレートリフロー用の温度制御装置の2号機では、いくつかの温度プロファイルをプリセットしておき、それらの中から使用するプロファイルを選択できる様になりました。これで、基板のベーキングが気軽にできる様になったのが、うれしいです。

今回は温度プロファイルのパラメータをスケッチ中に直書きしましたが、時間があればパラメータをEEPROMに保存するようにし、キーパッドから編集できる様にしたいと思っています。

温度制御に関しては、今回は簡単なP制御を行いました。予熱ステージとリフローステージの最初にヒーターを止める事により、オーバーシュートを抑える事ができ、ホットプレートリフローを行うには十分な性能が出たと思っています。

最初は本格的なPID制御に切り替えようかとも思っていたのですが、ホットプレートのむだ時間が長い割にはリフローにかけられる時間が短いので、制御は収束せず、PID制御に切り替えたところで、大幅な性能の向上は望めない気がします。

ただし、基板のベーキングを行う場合は、長い時間一定温度を維持する必要があり、この場合はPID制御は有効だと思います。特にI要素(積分要素)があると、温度を完全に目標値に収束させることが可能になります。現状のP制御では、ベーキングする基板の数が多いと温度が下がる傾向にあり、この点ではPID制御により性能の向上が可能だと思われます。

他にも装置を箱に収めて感電しないようにしたいなど、色々と改善したいところはあるのですが、まあ、ぼちぼちと。

目次へ  前のページへ (1) (2) (3) (4) (5) (6) (7) (8) 次のページへ

このページで使われている用語の解説

関連ページ

関連製品

128×64モノクログラフィックLCDシールド 商品名 128×64モノクログラフィックLCDシールド
税抜き小売価格 3600円
販売店 スイッチサイエンス
サポートページ
I/Oピン一つで読める4X4キーパッド(完成品) 商品名 I/Oピン一つで読める4X4キーパッド(完成品)
税抜き小売価格 1380円
販売店 スイッチサイエンス
サポートページ
I/Oピン一つで読める4X4キーパッドキット 商品名 I/Oピン一つで読める4X4キーパッドキット
税抜き小売価格 900円
販売店 スイッチサイエンス
サポートページ
Arduino 電子工作
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。