終段スイッチング電源検討(製作編5)

製作編5

プロテクション回路用ソフトをステップ作成し、都度デバッグを行います。

デバッグ準備

デバッグ用にArduino UNOとブレッドボードを組み合わせたマイコン基板を常備しています。

久しぶりに引っ張り出し、ジャンパ線を使って配線を行いました。マイコン回路図を参考として再掲載します。

最初は電源ランプ回路部のみの実装します。具体的には、電源ランプ制御用ポートにLEDを接続し、駆動電流が10mAとなるように電流制限抵抗を取り付けました。

demo0デバッグ

demo0は、電源オン後、5秒間電源ランプを点滅させて、タイムアップ後にランプを点灯状態に変える単純なソフトです。しかし、それがいっこうに意図どおりに動作しません。必要なポイントにシリアルモニタ出力を追加して動作確認をしたところ、出力のポート制御が正しく動いていないとしか考えられない状況となりました。マイコン基板を詳細に見たところ、D0とD1はシリアル出力と兼用されている事に気づきました。

特別な設定が必要なのかと思い、ネット検索をしました。結果はシリアルモニタで使用されているため、使わない方がいいとの事でした。半年ぶりのソフト製作で、arduino UNOの基本をすっかり忘れていました。使用するポートを以下のとおり変更します。

ソフトのポート設定変更をして、ジャンパ配線をやり直したところ無事電源ランプ制御ポートの動作確認ができました。

demo1

次はDCオフセット入力し、基準以下の場合のみ電源ランプを点灯状態に切り替えます。ソフト仕様は以下のとおりです。

デバッグ環境にDCオフセット入力回路を追加します。具体的にはA0~A2はGND接続し、A3ポートのみタクトスイッチを押すと0V入力される回路追加をしました。

4ch分のDCオフセット値はlong変数を配列化してforループ分で順番に読み込みます。arduino UNOのA/Dコンバーターは10bitなので、オフセット値はint型に収まりますが、mV変換(4.9倍)の際の誤差拡大を防ぐためにlong型としています。4ch分のDCオフセットの読み込み処理は、get_ofst()関数としてメインループ処理を解りやすくしています。下記がデバッグ後のdemo1実行画面です。

上記はA3ポートの検出確認となりますが、念のため他の全ポートの動作確認を行います。現状タクトSW回路はA3に接続されていますが、それをA2から順繰りに接続変更して動作確認を行いました。

上がA3ポート接続時ですが、白のジャンパ線がタクトSW回路に接続されています。それを下の写真のとおりA2ポートに接続を変更しています。全ポートの動作確認ができたので、demo1の評価は完了です。

demo2

最後は、アナログ信号をDCオフセット検出基板に入力し、その出力をアナログポートに入力して、DCオフセットの実検出確認を行います。確認は1つのチャンネルのみ行います。確認用の基板接続は以下のとおりです。

demo2のソフトの構成は以下のとおりです。

変更部分を簡単に説明します。case 3で4ch分のDCオフセットを読み込み、読み込んだ値がミュートオンの基準に達しているか判定します。読み込んだ値の判定用にchk_ofst()関数を追加しました。ミュートオン判定がされると、LED点滅モードに設定しcase 4へ移行してリレーをオフ(ミュート)します。これで必要な動作が全て盛り込まれました。次回はdemo2のデバッグを行います。

 

つづく(製作編6)