12chアッテネータ2検討(製作編7)

製作編7

ボリュームの駆動回路が完成したので、デバッグ環境を構築してソフトウェアによる基本動作を確認します。

モーター駆動回路

前回の記事の駆動回路各部電圧確認結果に関して訂正をします。駆動時のオペアンプ出力4.5Vに関して、電源電圧を上げる検討をするとしましたが、この結果であればオペアンプを入れた意味がありません。対策としては、単電源オペアンプ選定の見直しまたは、マイコンポート直接駆動の検討となります。直近のソフトウェア開発には影響がないので、検討はそのまま進めます。

マイコンボード

久々にarduino UNOを取り出しました。

arduino UNOのソフト開発は、「赤外線リモコン検討」以来なので、約1年ぶりです。もうすっかりC++を拡張したArdunio言語について忘れてしまっています。まずはarduinoソフトウェアの統合開発環境IDE(Integrated Development Environment)を立ち上げてみました。立ち上げたところ、「新たなバージョンがあります。」とのメッセージが表示された為、IDEを更新してみました。

Ver1-8-20 2022.04.25版にアップデートできました。正直、何が変わったかわかりません。次に、マイコンボードとモータードライバー基板の配線をします。本来であれば、シールド基板に接続用の端子台を搭載したものを製作しますが、デバッグ時点では簡易的な接続で問題ないので、接続ピンに配線をして、それをarduino UNO基板へ直接接続する事にしました。

初めにボリューム位置検出用信号入力をアナログ入力ポートA0,A1,A2に配線しました。接続ピンのハンダ付け部分は、ショート防止の為熱収縮チューブで保護しています。

続いて位置検出用ボリューム電源供給用に5VとGND配線をします。接続方法はアナログ入力ポートと同様です。

次に、上記配線した電線を位置検出用ボリュームに接続しました。

最後に駆動用信号を配線します。arduino UNOにはPWM出力可能なポートが6本ありますが、現時点でPWM機能を使うかははわかりませんが、その中からまずはd11とd10を使用しました。

これでデバッグ用の配線は完了です。いざ信号モニタ用にオシロスコープを接続しようとしましたが、プローブで掴むポイントがなかった為、接続用ピンソケットをarduinoに挿した上で、配線用のピンソケットを接続しました。

こんどこそデバッグ用の配線完了です。

プログラム作成(demo0)

プログラムは必要な動作を確認しながら、関数を作成していきます。最初はマニュアルでモーターを駆動し、その時のボリューム位置の検出をしてみます。ソフト名はdemo0としています。arduino UNOのアナログ入力ポートは10bitの為、検出した数値をmV単位に変換して、1sec毎にシリアルモニタに出力させます。

シリアル画面は、ボリュームを絞りきった位置からボリュームを上げている状態が確認できます。

demo1

次は、マイコンボードにボリュームのモーターを駆動させます。3s毎にアップダウンを繰り返す動作をさせます。cont_lowは動作モードで0=stop, 1=up, -1=downです。

その時のオシロスコープのモニタ結果は以下のとおりです。

黄色がモーター駆動信号の片側で、青がポジション信号です。3秒ごとにアップダウンを繰り返し、レベルが3.64Vと2.60Vを往復しています。これで回路の基本的な動作の確認は完了です。次回は実用的な関数をつくっていきます。

 

つづく(製作編8)