google-site-verification: google3bd66dd162ef54c7.html
FC2ブログ

化学反応式CO2発生装置、圧力計を追加

 圧力センサー(MPS20N0040D)の使い方が確認出来たので、いよいよCO2ガス発生装置(添加装置)に組み込んで、タンクのガス圧力を表示出来るようにします。

 ちなみに、全体はこんな物です。

▼水槽とCO2ガス発生装置
水槽と反応式CO2ガス供給装置
 左の小さな水槽に右の箱からCO2ガスを添加しています。(水槽の色が赤いのは、照明が夕日モードになっていたためです。)

 実はこの写真は圧力計を組み込んだ後に撮影しています。圧力の値は液晶画面に表示するので、外観的にはこれまでとほとんど変わっていません。

▼配管系統図
系統図
 重曹タンクの出口の配管を分岐して圧力センサーに接続しました。配管を一旦下げた後で上に上げているのは、圧力センサーに薬品が入ってしまうことを防止するためです。例え閉管の先でも、微妙な温度差で物質の移動・堆積が起こることがあるので、出来ることはやっておいた方が良いと思います。

▼回路図(図をクリックで別窓に拡大)
CO2供給装置回路図
 ちょっとずつ機能を追加していたら、こんなに大きな回路になってしまいました。今回追加したのは、下の方の圧力センサーの回路で、圧力のアナログ値をArduinoのアナログポート(A0)に入力しています。

▼圧力センサー基板
圧力センサー基板
 センサーとアンプを同じ基板に実装しました。ノイズの影響を受け易いので、後ろのプラケースで作ったシールドケースに入れて使います。なお、シールドは銅箔テープを貼って、はんだ付けで作りました。またこの銅箔は基板のグラウンドと接続しています(緑色の線です)。センサーへのコンタミ防止のため、この基板はケースの中の出来るだけ高い位置に置くようにします。

▼基板裏面
圧力センサー基板
 いきあたりばったりで配線していったのですが、うまく入りました。

 圧力の表示はソフト改造で行いましたが、その結果は以下の通りです。なお、元の表示の内容は、化学反応式CO2発生装置、ソフト解説編をご覧ください。

▼圧力の表示
通常表示(2行目に圧力表示)
 1行目はこれまでと同じで、次のショットまでの残り時間。2行目にはmmAq単位の圧力を表示させています。これはリークチェックをやっている時の写真なので高い圧力になっていますが、通常の使用状態では800~700mmAq程度です。

▼ポンプ時間と運転間隔
decボタンで2行目にポンプの動作時間と間隔
 dec (-) ボタンを押すと、ポンプの運転時間(ショット時間)と運転間隔を表示するようにしました。

 これまでは2行目にポンプの運転間隔を表示させていたのを、圧力表示に変えたので、ポンプ運転間隔が見れなくなってしまいました。この値は、Selectボタンを押してプログラムの内容を見れば判るのですが、ちょっと面倒です。そんなことで、ワンタッチで確認出来るようにするために、この機能を付けました。
 ちなみに、通常運転状態では(ー)ボタンには何の機能も割り当てていなくて、寂しかったのですが、これでメニューのバランスが良くなりました。

◆プログラムはこちら→CO2供給装置のプログラムV2.0 (Shift-JISでエンコードしています)

 これまでの記事のプログラムを合体しただけなので細かい説明は省略しますが、

 圧力計のテストの時点ではパラレルインタフェイスの液晶だったのを、I2Cインターフェイスに変更しました。このためのプログラムの変更は宣言部を修正しただけで、本体部分はそのまま使えたのは助かりました。

 readPress() の関数でADコンバーターの値を何度も読んで平均化していますが、ここの読み取り回数が892回と半端な値になっています。これは、この回数で実行時間が100msになり、電源波形の整数倍の時間になるので電源ノイズの影響を減らすことが出来る(はず)という狙いです(50Hzなら5サイクル、60Hzなら6サイクルに相当)。なお、コンパイラのバージョンによっては処理時間が変わるかも知れません。ちなみに、Arduino IDE 1.8.1 でコンパイルしました。

◆まとめ
 圧力計があると、運転状態を定量的に把握出来て便利です。特にストーンの違いやリークの有無が簡単に判ります。また、マイナスの圧力も測定出来るので、夜間にタンクが負圧になる様子も確認出来ました。

 圧力の表示の分解能を1mmAqとかなり細かくました。こんなに分解能を上げると、最小桁の値がふらつくのですが、それでも微妙な圧力の変化がすぐに判るので、これで正解でした。

 今回作った装置は、ガスの圧力をそのままストーンに供給しているので、圧力計の測定範囲の上限は約0.4kg/cm2にしています。もっと高い圧力、例えば1kg/cm2までタンクの圧力を上げ、そこからスピコンで絞ってガスを供給するのも面白そうです。でもそうすると、ホースを耐圧の物に変えないといけないし、安全弁も必要になるのでいろいろと厄介です。

 今回作った反応式CO2ガス発生装置(添加装置)の運転やメンテナンス方法については、ノウハウのような話がいろいろあるので、時期を見てまた記事にしたいと思います。

化学反応式CO2発生装置、ストーンの製作他

 重曹とクエン酸の反応を利用したマイコン制御のCO2発生装置の話の続編です。より安定したCO2の添加が行えるように、以下の改良を行いました。

1.クエン酸導入パイプ先端形状の変更
 構造解説編に書いたように、クエン酸は重曹タンクの底に差し込んだJ字型のパイプを使って注入しています。問題はクエン酸を送り込んで反応させた時に、パイプの中に二酸化炭素の泡が逆流して入ってくることです。

 たとえパイプに泡が入ったとしても、チューブポンプは一定量のクエン酸溶液を送っているので、長い時間で見れば反応量は同じになるはずです。でも、入った泡を押し出している間は反応しないので、CO2の発生が止まります。つまりCO2の発生量にムラが出てしまって好ましくありません。

 ということで、パイプ先端の形状を変更して、泡が逆流し難いような構造にしました。

▼パイプ先端形状
クエン酸導入パイプ先端
 左が従来品、右が改良品です。J 字の曲げ部を長くして、発生した泡がチューブに逆流し難くしました。なお、緑色の矢印の先端付近に小さな穴があって、ここからクエン酸の溶液が出てきます。

▼パイプ差し込み状況
重曹タンク底部
 白い物は底に溜まっている重曹です。見づらいですが、中央やや左下の黒い穴が反応部で、ここからCO2の泡が上がっています。今回の改良で、パイプ内への気泡の逆流が無くなりました。

2.ストーンの製作
 水槽内へのCO2の導入には専用のストーンを使うのですが、そんな物は持っていません。それに専用のストーンは大きくて、うちの水槽には似合いません。ということで、普通のエアー用のストーンを使っていたのですが、これでは小さな泡を安定して作ることは難しかったです。ということで、Webで作例が多いメラミンスポンジを使ったストーンを作ってみました。

▼使用材料
熱収縮チューブとメラミンスポンジ
 左は外径7.1mmくらいの熱収縮チューブ、右はメラミンスポンジを対辺間が22mmくらいの8角形になるように加工した物です。なお、この収縮チューブはダイソーの電気小物売り場で、各種サイズの収縮チューブの袋詰めに入っていた物です。

▼スポンジを収縮チューブに押し込む
メラミンスポンジを押し込む
 こんなに圧縮しても、メラミンスポンジには空気の通路が残るようです。

▼シリコンチューブを入れて収縮させる
シリコンチューブを入れてシュリンクさせる
 接続用のシリコンチューブを入れ、熱収縮チューブを加熱して収縮させます。

▼収縮後の外径
収縮後
 外径は6.53mmに縮んでいます、というかもっと縮んで欲しかったのですが、100円ショップの安物なのでこんなものなのかも知れません。ともかくチューブが縮むことで、メラミンスポンジは更に圧縮されます。

▼必要な長さに切断
ストーン完成
 ストーンの先端は鋭利なカッターで切断します。

▼使っている様子
使用状態
 極細のステンレスパイプを曲げた物を使い、ストーンが上向きになるようにして使っています。スト-ンの下のシリコンチューブを通して中が見えるので、中の気泡がミニバブルカウンターみたいに見えることがあります。

 なお、ステンレスパイプの先は熱収縮チューブを重ねて使って外径寸法を拡大し、シリコンチューブを差し込んでいます。電子工作では熱収縮チューブをよく使いますが、水槽の工作にも便利に使えます。

▼ストーン
水槽用のストーン
 左の二つの大きなストーンは空気用で、最初はこれを使っていたのですが全然ダメでした。泡が大きいのと、発生したCO2の圧力がすぐに抜けてしまいます。

 右の3つが今回メラミンスポンジで作った物ですが、どれでもうまく使えています。

◆まとめ
 最近は電子工作のネタが無くてこんなことをやってます。でもこれはこれで、やってみると改善のネタは尽きなくて面白いです。ストーンである程度の圧損を発生させることで、CO2のタンクの圧力が高くなるようにすると、長時間安定した気泡を発生出来る感じです。

 ちなみに今回作ったストーンを使った時のCO2の反応槽(重曹タンク)の圧力を測定すると70mmAqくらいでした。このあたりの話は機会があれば触れたいと思います。

 あと、メラミンスポンジのストーンは直ぐに劣化してしまうのではと思いましたが、数日間使った限りでは大丈夫そうです。まあそこそこの期間持ったのでこの記事を書いている訳です。いざとなったら強力に洗浄してしまえば復活させることが出来ると思いますが、安いので作り直した方が早いかもしれません。

化学反応式CO2発生装置、ソフト解説編

 水草水槽用のCO2発生装置の話のたぶん最終回、前回の回路解説編に引き続き、今回はソフト解説編です。ソフト解説編と言っても実際は機能解説編のような感じで書き進めていきたいと思います。

 先にこの装置の動作をおさらいします。

 CO2の発生量はチューブポンプの駆動時間とその動作間隔で制御しています。昼間はCO2を発生させ、夜間は止めるのですが、完全に止めてしまうと気温の変化などの影響で反応槽が負圧になることがあって、トラブルの発生原因になりかねません。そこで、夜間も低頻度でCO2の発生させて、圧力の低下を防止しています。

 また、朝になってCO2の発生を開始してもなかなか水槽内のストーンから気泡が出ません。こういう現象が発生する原因はいろいろ考えられますが、対症療法として朝の起動時にまとまった量のCO2を発生させて立ち上がりを早くしています。

 こういう機能はマイコンのソフトで行っていますが、その運転状態の表示や各種設定値の変更は操作パネルから行います。以下、その操作方法を説明します。

◆運転中
 運転中は操作パネルは次のような表示になっています。

▼表示・操作パネル
表示操作パネル
 先頭にRunと表示されているのが運転状態です。運転状態の場合、反応容器付近に付けた赤色LEDが1秒周期でフラッシュします。

 この写真の 74s というのは次のショットまでの残り時間(秒)で、120sはショットの間隔を表します。つまり、120秒間隔でショットを行う設定になっていて、次のショットまでの残り時間は74秒ということになります。なお、夜間はショットの間隔を大きくしますが、その内容は自動的に表示に反映されます。

運転状態から操作できるのは1 Shotボタンと、Select ボタンの二つです。

 1 Shot ボタンを押すと、設定された時間だけポンプを動かしCO2ガスの発生を行います。押しっぱなしにすると1秒間隔でポンプを動かします。つまりマニュアルでCO2を発せさせることが出来る訳で、動作確認などに便利です。なお、このポンプの駆動時間(ショットの時間)は自動運転の時も同じです。

 Selectボタンを押すと各種運転パラメーターの表示・変更画面に入ります。

◆運転パラメーター表示・変更画面
 この画面では1行目にパラメーターの説明、二行目にその値が表示されます。値は+-ボタンで増減し、Selectを押すと値が確定されて、次のパラメータに移動します。なお変更した値は内部のEEPROMに保存されるので、電源を入れ直しても最後の設定値が反映されます。

 以下、順番に内容を説明します。

▼Shot Tw (ショットパルス幅)
ショット時間
 1ショット当たりのモーター駆動時間です。値の範囲は5~100msで5msステップで設定可能です。なお、ここに小さな値を入れるとポンプが追従できない恐れがあります。実際に送液されているかどうか、1 Shot ボタンを使って確認すると良いでしょう。

▼DayInt. (デイ インターバル)
ショット間隔(昼間)
 昼間のショット間隔です。値の範囲は10~990秒で、10秒ステップで設定可能です。

▼NightInt (ナイト インターバル)
ショット間隔(夜間)
 夜間のショット間隔です。値の範囲は100~9900秒で、100秒ステップで設定可能です。

▼SS N (スタートショット ナンバー)
スタートショット回数
 朝に行うスタートショットのショット数です。値の範囲は0~30で、刻みは1です。なお0を指定した場合はスタートショットは行いません。

▼SS Int (スタートショット インターバル)
スタートショットインターバル
 スタートショットのショット間隔です。値の範囲は200ms~2000msで、刻みは100msです。

 最後のSS Int の画面で Selet を押すとRunの表示に戻り運転が再開されます。なお、Runの画面に戻さないと自動運転は行われないので注意。(この場合、1秒間隔でフラッシュする赤色LEDも光りません)

◆プログラム
 CO2発生装置のスケッチ (20180928Co2PumpDrive.txt) (Shift JIS エンコード、拡張子はtxt になっています)

 コメントを多めに入れてあるので詳しい説明は省略しますが、以下のような項目がポイントです。
1) EEPROMに変な値が入っていたらデフォルト値に修正。(まっさらなCPUは全データーが0xFFになっています)
2) I2C液晶のライブラリはI2CLiquidCrystal を使用。このあたりは、この記事が参考になるかも
3) 液晶表示の書式指定に sprintf を使用。
4) 液晶画面とタクトスイッチを使った値の入力用に、LcdRW関数を作成(233行目付近)

 居酒屋ガレージ日記さんの記事によると、sprintf よりもっと使い易い、vsprintf や vsnprintf なんてのがあるそうなのですが、まずはsprintf を使ってみました。

 LcdRW関数は汎用性が高いので今後使い道がありそうです。ボタンを離した時に数値が変わる仕様がイマイチですが、、

◆まとめ
 水草の成長が悪いのが何とかならないものか、と思ったことがきっかけであれこれやってきた訳ですが、結果として良い物が作れて良かったです。マイコン制御の反応式CO2添加装置なんてなかなか無いと思います。うまいセンサーがあれば、CO2のガス圧をフィードバックなんてのをやると面白そうです。

 これで反応式のCO2発生装置の一連の記事はいったん終了です。しばらくこのまま運転して様子を見たいと思います。
カレンダー
10 | 2018/11 | 12
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード