サーボモータのコントローラに手動スイッチを付ける事となった。そこで秋月で買っておいたレバースイッチを付ける事とした。これは左右に各2段階、プッシュスイッチも付いていて色々使えそうだ。
このレバースイッチを付けるためには8ピンのPIC16F18313では端子が足りない。水平用と垂直用の2つのスイッチを付ける事を考えると単純には12個の端子が欲しい。そこで手持ちの20ピンのPIC16F18346を使うこととした。これはPIC16F18326の20ピン版である。勿体ない気もするが増えたPICの12ピンを全てスイッチに割り当てた。そしてハードは次の様に組み上がった。
ソフトはPIC16F18313で作ったソフトを少し改造して使った。PIC16F18346になったのでプログラムメモリーが3.5KBから28KBに、RAMが256Bから2KBに大きく広がり使い易くなった。
このハードに乗せるソフトは最初にPIC16F18313用に作ったものを、いくつかの点を手直しして上手く動かすことが出来たが、レバースイッチの2段階の操作で速度を制御するのは使い勝手が悪そうだったので別に速度切り替えのスイッチを追加する事とした。ここはジョイスティックにすれば良かったかもしれない。
そしてこんな回路になった。
この回路(実装基板)の隠れた機能は3つのPICに対応している点である。20ピンのPIC16F18346だとフルの機能を使えるが、14ピンのPIC16F18326だとロータリーコードスイッチが使えず、PIC16F18313 だとレバースイッチも使えずリモート制御のみになる。一方3つのPICに対して(メモリー容量が許せば)プログラムはほぼそのまま使える点である。
この回路ですでに基板の設計とプログラミングは済んでいるが、まだロータリーコードスイッチを入手していないので検証が出来ていない。機能が確認できたら基板を発注する予定である。
そして、ロータリーコードスイッチを追加してこうなった。
ソフトも幾つか手直しして動くようになった。(続く)
0 件のコメント:
コメントを投稿