設計編1
ミュート制御ソフトウェアをコーディングしてArduino Unoでデバッグします。デバッグ済みのバイナリを新たに購入したArduino Nanoに転送して再デバッグしました。
制御仕様
基本的に、スイッチング電源A級BTL DCパワーアンプで採用したソフトから、DCオフセット検出を外した仕様とします。具体的な機能は以下のとおりです。
1)電源オン後5秒間ミュート状態として、電源ランプを点滅させる
2)電源電圧をモニターしてオフを検出したら電源ランプ消灯とミュート状態へ移行
3)ジャンパスイッチの設定で電源オフ検出後のミュート状態遷移の無効化
1項の電源ランプ点滅間隔は約0.3秒点灯、0.3秒消灯の繰り返しとします。3項はデバッグ用の機能です。
コーディング
ソースコードのベースは、スイッチング電源A級BTL DCパワーアンプ用マイコンソフトdemo7です。このソースからオフセット検出機能を削除しました。その基となるポート割付は以下のとおりです。
入力ポートD3は、プルアップ付きの入力設定としているので、ジャンパピンを挿さない場合、D3入力は'H'となります。ソフトの構造は以下のとおりです。
この表はソフト完成後に作成したものですが、無駄な処理が目立ちます。具体的には点滅モード処理は、毎ループ不要、case 4とcase5の統合できる点です。大きな影響はないので、このままとします。
デバッグ
初めに使い慣れたArduino Unoを使ってデバッグを行いました。
リレー制御出力とLED点灯制御出力をオシロスコープで確認しました。
上が電源検出有効時で、下が電源検出無効時です。黄色のラインがリレー制御信号で、青がLED点灯制御信号です。デバッグ回路では、電源オフ検出用入力に電源を接続していない為、電源検出が有効な場合は、5秒後にすぐミュート状態となります。この波形を見る限り仕様どおりの動作をしているようです。
Arduino Nano
Arduino Nanoが届きました。
1個づつ専用のパッケージに納められています。1つ開けてみました。
マイコン基板1枚と、基板ポストが3個入っていました。早速組み立ててみます。
ポストの半田付けだけなのであっという間に完了します。これをブレッドボードに挿してArduino Unoでデバッグ済みのバイナリを転送してみます。
ブレッドボードへの装着は、あまり深く挿さりませんが、デバッグ程度であれば問題なく使用できました。Arduino Unoと比較すると遙かに小さく、私の標準ユニバーサル基板に実装すれば、周辺回路もある程度実装できそうです。互換基板なので、価格が1/3以下の点も魅力です。今回使用したArduino Nanoは互換基板なので、開発統合環境IDEから自動認識されません。手動でArduino Nanoを選択しました。
さっそくArduino Unoデバッグ時と同様に波形をモニタしてみました。
問題なく互換動作しました。次回は制御用回路を設計して実装および動作確認を行います。
つづく(製作編1)