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

化学反応式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コード