(4) M5StickC Plusとペルチェ素子で恒温水槽を作る - モータードライバによるペルチェ素子制御
ペルチェ素子ユニットについて
ペルチェ素子は、電流を流すことで素子表面の熱の移動を起こさせる素子です。電流を流す方法を変えると、冷却面と発熱面も入れ替わります。
今回は、このペルチェ素子を使用します。水冷ブロックに水を通して水冷ブロックとペルチェ素子の間で熱交換させることで、その水の熱を奪ったり、熱を与えたりします。
冷却部と発熱部は、そのままだと次第に温度が均一になってきて熱の移動が起こらなくなってきてしまいますので、熱くなった面を冷却する放熱、もしくは冷たくなった面を送風で温めることが重要になってきます(この後は冷却の場合も温める場合も用語を「放熱」で統一します)。
水冷ブロックの両サイドをペルチェ素子ではさみ、ヒートシンク(放熱板)がペルチェ素子の反対側の面に当たるようにして放熱します。
これで、ヒートシンクの熱容量までは放熱できますが、更に、12cmPCファンで風をあて、ヒートシンクから空気中への放熱を促進します。
今回は、ペルチェ素子に対して大きなヒートシンクとファンを使用したため、できた隙間は発泡スチロール(断熱材)で埋めています。
なお、ペルチェとアルミ放熱板、水冷ブロックの間はCPU用熱伝導グリスを塗って熱交換をしやすくしています。
モータードライバについて
ペルチェ素子に流す電流を反転すれば、冷却にも、加温にも対応できるわけですが、ここで、流す電流をどのように反転するかが問題になってきます。
回路的には2極双頭スイッチ(スイッチを押すと2か所が同時に切り替わるスイッチ)を使用することで、切り替えが可能です。
ただ、今回は物理スイッチで切り替えるのではなく、プログラムで制御したいので、モータードライバを使用します。
モーターは、動かすため大きな電流が必要です。M5StickC Plusなどのマイコンは供給できる電流量に限界があり、たいして電流を流せません。micro:bitだと90mAほど、M5StackやM5SticKC Plusなどに利用されているESP32は、40mAもしくは20mAが出力できるようです。LEDくらいでしたら、マイコンから直接駆動できるのですが、モーターはそうはいかないのです。
例えば、モーターとして有名なマブチモーター(FA-130RA)は、適正電圧での負荷電流が500mAくらいです。
すると、モーターなどの大きな電流が必要なものは、直接マイコンでは動かせないため、マイコンでモーターを動かすためには、マイコンは制御信号だけ送り、モーターを動かすのは別のモジュールが行うようにします。
このモジュールがモータードライバで、別電源から電流を取り出し、マイコンは制御信号をモータードライバに送ることで、モータードライバがモーターを駆動させます。そして、制御信号により、モーターの正転・逆転やモーターのスピードをコントロールするのです。
ペルチェ素子も、大きな電流が必要です。広く流通しているTEC1-12706は、12V、6Aですから、2つで12Aとなります。
モータードライバを使えば、M5StickC Plusでのプログラムによる制御、電流供給の問題と、電流の方向を一括して解決することができます。
12V、そして、12Aという大きな電流を扱えるモータードライバを探したところ、Amazonに
このような製品がありました。
スペック通りであれば、入力電圧5~15V、50Aまで対応しているようです。
耐久性は、使ってみないと分かりませんが。
今回は、これを使用しています。
写真のモジュールのGNDにGND、IN1とIN2にM5StickC Plusからの信号線を配線します。
今回は、Grove端子のPin32、33からのモータードライバの制御信号の出力をするようにしました。
実際の接続は以下の通りになります。ペルチェ側の+-は電源とは独立させます。GNDとペルチェの-は共通にならないようにしてください。
(+-反転時に電圧がおかしなことになるはず)
動作確認用のプログラムで動作を確認します。
状態、Pin32、Pin33を変数として持ち、ボタンAを押すごとに状態を「停止
」「加温」「冷却」で遷移させます。
ずっと(メインループ)では状態に応じてPin32、33の値を設定し、デジタルで出力(1か0)させます。