HOME >> 鉄道模型工作室 > マイコン式の運転操作台を作ろう ブレッドボードでのテスト
マイコンを使った運転操作台を作ってみようと思い立ち、さっそく手を動かしました。 制御ロジックの骨格が固まったので、ロジックとハード回路の確認のために、ブレッドボードによるテストを実施することにしました。
■ ハード回路の検討
まず、機能を実現させるハード回路を検討しました。 制御マイコンは、一般的な Arduino UNO を使用する事にします。 液晶表示パネルは、以前使用していたキャラクターLCDを再利用します。 16×2行バックライト緑付(SD1602HULB-XA)小型CDモジュールで、インターフェースIC(HD44780 コンパチ)を備えているものです。
マスコンやブレーキのノッチ選択は、「ロータリスイッチのコード化」(2021/1/16)と同じロータリスイッチを使用する予定ですが、ブレッドバードでのテストの場合には、小型でコード化されたスイッチを使用しました。 DIPロータリースイッチ正論理タイプ(ERD216RSZ)です。 16ポジションの物ですが、0〜7ポジションを使用予定ですので、出力は3本のピンを使用します。 各ピンは選択されない場合の浮き防止のためプルダウン回路にしておきます。
供給電圧は給電を考慮して12ボルトを使用し、付属機器類の制御電力として Arduino の負担を減らすため、いつもの様に 5v定電圧ユニットを使用します。 モータドライバは今まで使用してきたドライバを使用し、フィーダーはテストですのでひとつだけ設定しました。
配線図を上に示しますが、Arduino のポートは満杯となりました。 PWM出力はD10ポートを使用し、PWMのキャリア周波数を 20Kh/z にする予定ですのでD9ポートは使用出来ません。 その理由は「Arduino Uno のPWMキャリア周波数を20kHzにする」(2020/4/4)を参照下さい。
回路を組んだ状態を下に示す。
ここまですんなりと進んだ様に記述していますが・・・・・・・・・、あちこちヘマをしてウロウロしていました。 内容は恥ずかしいので内緒にしておきます。
■ スケッチの記述
制御の基本となるロジックをプログラムとして記述して行きます。 まず、最初に昔実施したことのある液晶表示パネルの表示方法から復習する事にしました。 やはり心配した通りにエラーとなってコンパイルできませんでした。 ネットのアドバイスに従し、 megaavr ボードパッケージをバージョンアップして対応しました。 無事表示できるようになったので、操作ダイヤルの選択状態をチェックする部分から記述を始めました。
各スイッチ毎に、 if 〜 else if 〜 文を使ってノッチ数を選択します。 そのノッチ数に従って先回報告した要領で車速を計算し、液晶パネルにその結果を表示させるようにしました。
ここでも、単純ミスとか思い込みによって狙いどうりに作動せず、スケッチのバージョンがいくつも出来てしまいました。 当初は、全てを記述してからテストするつもりでしたが、不具合の原因が分からなかったため、最初に戻ってひとつづつ進めることにした。 処理結果をシリアルモニタに表示させ、作動状態をチェック確認しながら進めました。 記述は馴れたと言えども一歩づつ進めるべきですね。
車速の演算と液晶表示の記述がパスできると、PWM制御部分を追加して、実際に作動するのかを確認するため簡単なレイアウトで走行テストを実施しました。 その時の状態を下に示す。
電車が動き出した時はやっぱりうれしかったですね。 これでこの方法でも実現できると確信しました。
これらの作業時の様子を動画で紹介します。 最初は、ダイヤル操作と液晶表示状態を確認している時の様子です。 まだ馴れていないマスコン操作とブレーキ操作にうろうろしています。 次に、初めて電車を走らせた状態です。 そして、PWMのデューティ値の記述方法を変更した時の状態です。 PWM信号のキャリヤ周波数は、約490Hz ですので、キーンという耳障りな音が聞こえています。
次回は、周波数を 20KHz にアップした状態と常灯レベルの確認状態を報告しよう。
2021/4/19 作成