前回の記事がもう10ヶ月近く前になってしまいました。せっかく作ろうと思っていた方、ごめんなさい。
さて、前回に引き続いて、「エバポ用真空制御装置の自作」に挑戦していきます。前回までの記事では、圧力センサからのアナログ信号をArduinoによってデジタル信号に変換し、液晶ディスプレイに表示する方法を説明しました。今回の記事では、ロータリエンコーダとよばれるマウスのホイールにも使われている電子部品を接続して、設定値を入力できるようにする方法、さらに電磁弁を接続し、真空度を制御する方法を説明します。
パーツ集め
まず、必要なパーツを挙げます。前回までの記事で用いた圧力センサ、液晶ディスプレイなどのパーツは省略し、今回から新たに必要になるものだけを挙げています。
・電圧リファレンス(シャントレギュレータ) LM336Z-5.0 1個 (秋月電子通商、 通販コード: I-11159)
・固いジャンパワイヤ (ブレッドボード用) 1セット (スイッチサイエンス、コード番号: EIC-J-S)
※「Arduinoをはじめようキット」には含まれています。
・普通のジャンパワイヤ(オス~オス) 手元に合計30本程度 (3セット) ※前回までに使った分を含める (スイッチサイエンス 、コード番号: EIC-UL1007-MM-015)
※「Arduinoをはじめようキット」には1セット(10本)含まれています。前回の記事では秋月電子通商で販売されているものを紹介しましたが、こちらのスイッチサイエンスのものの方が一本15 cmと秋月のものより長いため、使いやすいかもしれません。
[amazonjs asin=”B0025Y6C5G” locale=”JP” title=”Arduinoをはじめようキット”]・ターミナルブロック 2ピン(青)(縦)小 6個 (秋月電子通商、 通販コード: P-01306)
・ターミナルブロック 3ピン(青)(縦)小 3個 (秋月電子通商、 通販コード: P-01307)
・カーボン抵抗(炭素皮膜抵抗) 1/4W5.6kΩ (100本入) 1袋 (秋月電子通商、 通販コード: R-25562)
※使用するのは一本のみです
・小型リレーボードキット(5V用) 2個 (エレキット、商品コード: LK-RB1)
・ロータリーエンコーダ(24クリックタイプ) 1個 (秋月電子通商、 通販コード: P-06357)
・大型つまみ(ノブ) 33mm ABS-648-33 1個 (秋月電子通商、 通販コード: P-01000)
・汎用整流用ダイオード 1000V1A 1N4007(20本入) 1パック (秋月電子通商、 通販コード: I-00934)
※使用するのは2本のみです
・CKD USBシリーズ 小形 直動式2ポート電磁弁USB3-6-1-B-DC12V 2個 (モノタロウ、注文コード: 78360037)
※一号機ではシール部がPTFE製、100V駆動の電磁弁(AB31-01-1-C-AC100V)を用いていましたが、今回はシール部の耐薬品性よりも安全性を考えて12Vで動作する電磁弁を用いることにしました。こちらのシリーズではシール部がPTFE製のものは販売されていないため、フッ素ゴム製のものを使うことにしました。
・ホースニップル HN-1108 4個 (モノタロウ、注文コード: 05816781)
・タクトスイッチ(黒色)1個 (秋月電子通商、 通販コード: P-03647)
※「Arduinoをはじめようキット」には含まれています。
・カーボン抵抗(炭素皮膜抵抗) 1/4W10kΩ (100本入) 1袋 (秋月電子通商、 通販コード: R-25103)
※「Arduinoをはじめようキット」には含まれています。
※使用するのは一本のみです
・ロータリーエバポレーター本体
※動作確認に必要ですが真空ホースを接続することができれば2 L~3 L程度のフラスコでも代用できます。
以下のものは必須ではありません。流量を絞れるものであればなんでもかまいません。
・18Gの注射針 1本 または 分注用ノズル1 本 (分注用ノズルの方が先端が尖っていないため安全)
・プラスチックディスポシリンジ(1 mL) 1本
シャントレギュレータの接続、配線の見直し
前回までの構成では、USBポートから電源を供給していました。そのため、パソコンにつなぐかUSB充電器に繋ぐかといった電源の違いで表示圧力がばらつくという問題がありました。大雑把な圧力制御という観点からはそのままでも問題ありませんが、その問題を解決する手法から説明します。また、本記事から配線が複雑化するため、これまでの配線の仕方も見直してみることにします。
A. 表示圧力が電源の違いによってばらついてしまうのは、USBポートから供給される電圧にばらつきがあるためです。標準設定のArduinoでは電源電圧が基準電圧となるため、電源電圧のばらつきがそのまま測定値のばらつきにつながってしまうのです。この問題を解決するために、シャントレギュレータと呼ばれる電子部品を用いてArduinoに正確な基準電圧を与えてあげます。リード線をブレッドボードに挿すために曲げたシャントレギュレータを写真に示します。「LM336Z-5.0」と刻印のある平らな面を手前に持ってきたときに、右側のリード線をGND(-)に、真ん中のリード線をArduinoのAREFピンと、5.6 kオームの抵抗器を介して+12Vの電源に接続します。すると、電源によらずArduinoに5Vの基準電圧が供給されるようになり、新しいプログラムを書き込むと表示値がばらつかないようになります。詳しくは後程説明します。
B. シャントレギュレータを接続し、配線も一部やり直した後の写真を載せます。次に詳細を説明していきます。
配線をいじる前にACアダプタ、USBケーブルをコンセント、PCから抜いておいてください。
C. 配線をすっきりまとめるために、写真に示した固いジャンパワイヤやターミナルブロックを用います。今回は、2ピンのものはACアダプタを接続するために用いて、3ピンのものを圧力センサに接続するために用いています。そして、二種類のターミナルブロックを連結させてブレッドボードに挿しました。側面の穴に導線を入れて上面のねじを締めると導線を固定することができます。次に、今回配線をいじる部分の接続の仕方を説明していきます。間違いがあるとパソコンが破壊される可能性もあるため注意してください。前回の記事まででは、圧力センサとACアダプタ、Arduino間の接続にははミノムシクリップを用いていましたが、まず、それらをすべて外します。※ミノムシクリップを用いていない液晶ディスプレイとArduino、ブレッドボード間の配線は外す必要はありません。
D. 前回、液晶ディスプレイのコントラスト調整用半固定ボリュームはブレッドボードの左下側に配置しましたが、それを左上に移動させます。さらに、結果的につながる部分は前回と変わりませんが、固いジャンパワイヤを用いてブレッドボード上をすっきりさせました。つなぎ方は前回同様で、以下の通りです。ブレッドボード上では電源ラインは横方向でつながっており、他の部分では縦方向につながっていることを思い出してください。
・半固定ボリュームの右側の足⇔(固いジャンパワイヤ)⇔ブレッドボードの電源-ライン(5V)
・半固定ボリュームの真ん中の足⇔(普通のジャンパワイヤ)⇔液晶ディスプレイの3番ピン
・半固定ボリュームの左側の足⇔ブレッドボードの電源+ライン(5V)
E. 次に圧力センサとACアダプタをブレッドボードにつなぎなおします。ターミナルブロックをブレッドボードの任意の場所(図のような位置が好ましい)に挿し、以下の箇条書きで示したように、固いジャンパワイヤを用いて配線します。ここでは2ピンのターミナルブロックと3ピンのターミナルブロックを連結させてからブレッドボードに差し込みました。そうした方がブレッドボードから抜けにくくなります。ブレッドボード上では電源ラインは横方向でつながっており、他の部分では縦方向につながっていることを思い出してください。尚、ブレッドボード上には電源ラインが上側と下側の二つありますが、前回の記事通りに配線した場合は、上側が5Vの電源ラインとなるので、今回は下側のラインに12VのACアダプタを接続して12Vの電源ラインとし、そこに圧力センサなどを接続します。これまで通り、圧力センサの白色の導線は使いません。この部分の配線後の様子を図Eに示します。連結させて5端子になったターミナルブロックの図の右端の配線から箇条書きにしました。
・ACアダプタの赤色の導線⇔(ターミナルブロック⇔固いジャンパワイヤ)⇔ブレッドボード上の電源+ライン(12V)
・ACアダプタの黒色の導線⇔(ターミナルブロック⇔固いジャンパワイヤ)⇔ブレッドボード上の電源-ライン(12V)
・圧力センサの茶色の導線⇔(ターミナルブロック⇔固いジャンパワイヤ)⇔ブレッドボード上の電源+ライン(12V)
・圧力センサの青色の導線⇔(ターミナルブロック⇔固いジャンパワイヤ)⇔ブレッドボード上の電源-ライン(12V)
・圧力センサの黒色の導線⇔(ターミナルブロック⇔普通のジャンパワイヤ)⇔ArduinoのA5ピン
F. 次に、シャントレギュレータと、電源ライン(12V)、Arduino本体を接続します。Arduino本体と電源ライン(12V)を接続することで、これまでとは異なり、USBケーブルによつてパソコンや充電器と接続しなくてもACアダプタをコンセントにつなぐだけで動作するようになります。シャントレギュレータの平らな刻印のある面が手前になるように挿したときの配線の仕方を説明します。シャントレギュレータの真ん中のリード線はArduinoのAREFピンと抵抗器の二つに接続し、シャントレギュレータの左側のリード線はブレッドボードに挿すだけで、どことも接続しません。最後にArduinoのGNDピン(GNDピンはいくつかあるが空いているどのピンでもよい)とVinピンをブレッドボードの電源12Vラインと普通のジャンパワイヤで接続するのを忘れないようにしてください。
・シャントレギュレータの右側のリード線⇔(固いジャンパワイヤ)⇔ブレッドボード上の電源-ライン(12V)
・シャントレギュレータの真ん中のリード線⇔(普通のジャンパワイヤ)⇔ArduinoのAREFピン
・シャントレギュレータの真ん中のリード線⇔5.6 kオームの抵抗器⇔(固いジャンパワイヤ)⇔ブレッドボード上の電源+ライン(12V)
・ブレッドボード上の電源-ライン(12V)⇔ArduinoのGNDピン
・ブレッドボード上の電源+ライン(12V)⇔ArduinoのVinピン
G. 前回の記事で作ったプログラムに「analogReference(EXTERNAL);」というコードを画像で示した位置(※lcd.begin(16, 2);の次の行)に書き加えてマイコンボードに書き込みます。このコードを加えない状態でACアダプタをコンセントに接続するとArduinoボードが破損する可能性があるので注意してください。新しいプログラムが正しくボードに書き込まれたことを確認したら、再度、配線を確認しUSBケーブルをパソコンから抜き、ACアダプタをコンセントに挿して、圧力が液晶ディスプレイに表示されることを確認してください。USBケーブルをパソコンに接続したままACアダプタをコンセントに挿した場合でも正しく配線できていれば問題はありませんが、配線にミスがあるとパソコンが損傷する可能性があるので十分注意してください。ここまでの説明で電源の種類による値のばらつき問題が解決された圧力計が完成したことになります。また、USBからの給電は必要なくなり、配線も大幅に簡素化されました。
電磁弁、リレー、ロータリエンコーダ、リセット用スイッチの接続
次に、圧力制御に必要な電磁弁、その電磁弁をArduinoで制御するために必要なリレーと呼ばれる電子部品、設定圧力を入力するためのロータリエンコーダと呼ばれる電子部品、そして、設定圧力をリセットするためのスイッチを接続します。
A. 小型リレーボードキットを同封の説明書を参考に2個組み立てます。配線しやすくするために別売りの 3ピンのターミナルブロック1個と2ピンのもの2個を連結してキットの基盤にはんだ付けしました。さらに、ロータリエンコーダの三本のリード線それぞれにジャンパワイヤをはんだ付けします。その後、つまみをロータリエンコーダの軸に固定します。
B. ロータリエンコーダを以下のようにArduinoやブレッドボードの電源ライン(5V)に接続します。ロータリエンコーダのリード線の左右はつまみ側を上に、リード線側を下側、手前に置いたときの見え方で決めています。
・ロータリエンコーダの右側のリード線⇔(はんだ付けしたジャンパワイヤ)⇔Arduinoのデジタル2番ピン
・ロータリエンコーダの真ん中のリード線⇔(はんだ付けしたジャンパワイヤ)⇔ブレッドボードの電源-ライン(5V)
・ロータリエンコーダの左側のリード線⇔(はんだ付けしたジャンパワイヤ)⇔Arduinoのデジタル3番ピン
C. 一組目のリレーと電磁弁をArduino、ブレッドボードに接続します。二組のリレーと電磁弁のセットを区別する必要があり、こちらのデジタル8番ピンに接続して制御する方を、今後はリレー8、電磁弁8と呼ぶことにします。ここでは新たに2ピンのターミナルブロックを一つ使用します。各パーツの配線の仕方を以下に示します。リレーボードの左右は、黒いリレー本体を上側に、青いターミナルブロックを下側に置いたときの見え方で決めています(※写真の置き方とは上下が逆になっています)。カッコ内に示すアルファベットは端子名の略称です。また、サージ保護用のダイオードをブレッドボードに挿して電磁弁と並列に接続することを忘れてはいけません。ダイオードには極性があるので下記の指示に従ってください。また、電磁弁には、ゴムホースを接続すためのホースニップルをつけておきます。
・リレー8のターミナルブロック一番左(SIG)⇔(普通のジャンパワイヤ)⇔Arduinoのデジタル8番ピン
・リレー8のターミナルブロック左端から2番目(G)⇔(普通のジャンパワイヤ)⇔ブレッドボードの電源-ライン(5V)
・リレー8のターミナルブロック左端から4番目(V)⇔(普通のジャンパワイヤ)⇔ブレッドボードの電源+ライン(5V)
・リレー8のターミナルブロック左端から5番目(C)⇔(普通のジャンパワイヤ)⇔ブレッドボードの電源+ライン(12V)
・リレー8のターミナルブロック左端から6番目(M)⇔電磁弁8の赤色の導線
・リレー8のターミナルブロック左端から6番目(M)⇔(普通のジャンパワイヤ)⇔ダイオードのカソード(帯がある方)
・ダイオードのアノード(帯がない方) ⇔電源-ライン(12V)
・電磁弁8の黒色の導線⇔(ターミナルブロック)⇔電源-ライン(12V)
※ターミナルブロック左端から3番目と7番目の端子にはなにも接続せず、6番目の端子は電磁弁とダイオードの二つに接続します。
D .二組目のリレーボード、電磁弁をArduino、ブレッドボードに接続します。こちらはデジタルピン9番ピンに接続して制御するため、今後はリレー9、電磁弁9と呼ぶことにします。これらのパーツの配線の仕方を以下に示します。リレーの左右は、先ほど同様、黒いリレー本体を上側に、青いターミナルブロックを下側に置いたときの見え方で決めています。また、先ほど同様に電磁弁と並列にダイオードをつなげます。
・リレー9のターミナルブロック一番左(SIG)⇔(普通のジャンパワイヤ)⇔Arduinoのデジタル9番ピン
・リレー9のターミナルブロック左端から2番目(G)⇔(普通のジャンパワイヤ)⇔ブレッドボードの電源-ライン(5V)
・リレー9のターミナルブロック左端から4番目(V)⇔(普通のジャンパワイヤ)⇔ブレッドボードの電源+ライン(5V)
・リレー9のターミナルブロック左端から5番目(C)⇔(普通のジャンパワイヤ)⇔ブレッドボードの電源+ライン(12V)
・リレー9のターミナルブロック左端から6番目(M)⇔電磁弁9の赤色の導線
・リレー9のターミナルブロック左端から6番目(M)⇔(普通のジャンパワイヤ)⇔ダイオードのカソード(帯がある方)
・ダイオードのアノード(帯がない方) ⇔電源-ライン(12V)
・電磁弁9の黒色の導線⇔(ターミナルブロック)⇔電源-ライン(12V)
※ターミナルブロック左端から3番目と7番目の端子にはなにも接続せず、6番目の端子は電磁弁とダイオードの二つに接続します。
E. 次に設定圧力リセット用のスイッチをブレッドボード上に差し込みます。タクトスイッチは図で示した向きでブレッドボードの真ん中に差し込みます。そして以下のように配線します。タクトスイッチ左上のリード線はArduinoと抵抗器の二つに接続し、下側ふたつのリード線は使いません。
・タクトスイッチ左上側のリード線⇔10 kオームの抵抗器⇔ブレッドボード上の電源-ライン(5V)
・タクトスイッチ左上側のリード線⇔(普通のジャンパワイヤ)⇔Arduinoのデジタル4番ピン
・タクトスイッチ右上側のリード線⇔(固いジャンパワイヤ)⇔ブレッドボード上の電源+ライン(5V)
F. 以上で配線は終わりです。配線ミスがないか再度確認してください。次に、二つの電磁弁と圧力センサをロータリーエバポレーター本体、ダイアフラムポンプと真空ホースを用いて接続します。真空ホースは以下のように接続します。電磁弁には、「IN」と「OUT」の刻印があり、向きがある点に注意してください。ホースを分岐させる際には、適宜、Y型チューブコネクターなどを利用してください。電磁弁9の「IN」ポートにはなにも接続しませんが、エバポ本体やフラスコの中に小さなごみなどが入るのを嫌うときにはキムワイプなどで入り口を軽く覆っておきます。
・圧力センサ⇔エバポレーター本体
・電磁弁8の「OUT」ポート⇔ダイアフラムポンプ(INポート、吸引側)
・電磁弁8の「IN」ポート⇔エバポレーター本体
・電磁弁9の「OUT」ポート⇔エバポレーター本体
制御用プログラムの書き込み、動作確認
次にプログラムを書き込みます。
プログラム*をコピー&ペーストし、マイコンボードに書き込みます。書き込み終わったら、USBケーブルをパソコンから抜き、ACアダプタをコンセントに接続しダイアフラムポンプを起動してみてください。ロータリエンコーダのつまみを回すと設定値SVが変わり、測定値PVがそれに近づくように制御されているか確認してみてください。ブレッドボード上のタクトスイッチはリセットボタンであり、押すと設定値SVが1013 mbarとなり、エバポ内が大気圧に近づきます。
文字化け等を防ぐためにPDF形式(テキスト形式はサーバーのセキュリティ上上げれませんでした)のものを準備しました。プログラムはこちら
※ロータリエンコーダの情報を読み取るプログラムはこのWebページのものを使わせて頂きました。
このプログラムは23 L/minの排気速度のダイアフラムポンプを3 L程度の容器(おおよそエバポ本体とフラスコ、トラップ球を合わせたものに相当)に接続したときに問題なく制御できるよう組まれています。排気速度の著しく異なるポンプを用いた場合などはプログラムの一部を書き換えた方がよりよい制御が実現できるかもしれません。変更するのは、プログラム後半のif (PV > SV+10)、if (PV < SV-5)、if (PV < SV-20)、if (PV > SV-20)
の中の数字です。これらの数字によって電磁弁のON/OFFは一定の幅を持たせて行われています。用いるポンプの排気速度にかかわらず、これらの数値を一つずつ弄って、それが動作にどのように影響するか確認してみてください。これらのコードは測定値PVと設定値SVを比較して、その大小に応じて二つの電磁弁をON/OFFするものです。ここで示した四つの数字よりもより優れた数字の組み合わせを見つけてみるのも面白いかもしれません。
※以下の写真のように電磁弁9のINポートに真空ホース、プラスチックディスポシリンジ(1 mL)のフィンガーフランジ部を切断したもの、18Gの注射針(キャップは付けたまま。ただし、きつくはめ込まないこと)または先端が尖っていない分注用ノズルなどを接続し、流量を絞ると、より精密な制御ができます。ただし、リセットボタンを押してから大気圧に戻るまでにかかる時間は長くなります。
自分で装置を作ることのメリットの一つは自分が使いやすいように自由に設計できる点です。例えば、よく使う設定圧力をボタン一つで呼び出す機能なども簡単につけることができます。ぜひ挑戦してみてください。
以上で今回の記事は終わります。次回、これらの装置をケースに組み込む部分を大まかにまとめます(次がラストです!一週間以内に公開します)。
エバポ真空制御装置を作ろうシリーズ
- 部品の大まかな説明、マイコンについて、また必要なパーツを集め
- 圧力センサの信号をパソコンに転送。ハードウェア編とソフトウェア編
- 液晶ディスプレイを接続し、それに表示する方法
- 全部接続してみよう (本記事)
- 組み立てて動かしてみよう
本記事は、大阪大学鳶巣研究室の櫻井駿さん(博士課程3年)による寄稿記事です。