PICでモータ制御をテストするための制御ユニット
で、モータ制御の他に各種インターフェース部を
実装しています。
PICでモータの速度制御や、PID制御の実験をするためのコントローラ
で、PIC16C73を使い、PWMモータ制御、パソコンとのシリアルインター
フェース、アナログセンサ入力、回転数センサ入力、センススイッチなど
の回路ブロックを一緒にした汎用の制御ユニットdす。
【構成】
全体の構成は下図のようなブロックから構成されており、それぞれ、
PIC16C73の持っている機能ブロックを活用しています。
(1) パソコンインターフェース部
PIC16C73のUSARTブロックを使い、外付けにMAX232Aという
便利なICでRS232Cのインターフェース回路を付加しています。
(2) 液晶表示器インターフェース部
他の製作例でも使っている、16文字2行表示の液晶表示器を
前提としたパラレル接続インタフェースで、制御サブルーチン
も他のものと共用しています。
インターフェースとしては、汎用ですので、他の目的にも使う
ことも可能です。
(3) センススイッチ部
4ビットの汎用センススイッチとして使用可能ですが、今回は
4ビットのディジスイッチを接続して、0からFまでの16進数が
入力できるようにしました。
(4) センサ入力部
2系統のアナログ入力と、やはり2系統のディジタル入力があり、
アナログは、汎用アンプで約1から5倍に増幅されてから、
8ビットのA/D変換に接続されています。
用途はモータなどの電流測定に使います。
ディジタル入力は汎用入力ポートと、タイマー0の入力ポートに
接続されており、高速カウントも出来ますし、単純な入力にも
出来ます。モータの回転数検出や、位置検出に使います。
(5) モータ制御部
PIC16C73の2個のCCP出力が、MOS FETで構成された1組の
Hブリッジ回路に接続されていて、正転、逆転、停止の制御と
正/逆それぞれの回転数制御が可能です。
もう少し工夫すれば、2組のHブリッジとして、2個のモータの
回転数を制御することも可能です。
【全体回路】
上記の構成での全体回路は下図の様になっています。
ちょっと大きな回路図です。 PICにはPIC16C73A-JWでプログラム
書換え可能なタイプを使っています。
アナログアンプには単電源で動作して、0Vから電源電圧までの
出力が可能な、LMC662Aというオペアンプを使いました。
但し、入力は必ず0Vからプラスの方向である必要があります。
クロック周波数は、最大20MHzまでは動作するのですが、CCPの
使い勝手上で、10MHzとしています。
モータ制御用のHブリッジには、MOS FETのN型とP型の相補型と
して、モータ用電源をほぼ100%モータ制御に使えるようにして
無駄が無い様にしています。また、MOS FETを使うと、FETでのON
抵抗を低くすることが出来るので、発熱も気にしなくて済みます。
このペアFETは負荷電流が5Aのタイプですので、モータ制御負荷
としては、余裕を見て、定常時1A程度を最大として下さい。
【組み立て】
実際の上記ユニットの組み立てには、自作プリント基板を使っています。
サンハヤトの10Kタイプ(100×75mm)の感光基板で納まりました。
まだちょっと余裕がある程度ですので、Hブリッジを2回路構成にすれば
もっと色々な実験に使えるかと思います。
【プログラム】
ブロックごとの部分的なテスト用プログラムサンプルで動作確認を
しましたので、それを説明します。
(1) モータ制御回路+センススイッチ回路
テストプログラムの動作は、センススイッチの4ビットをバイナリ値と
して入力し、奇数、偶数によりモータの回転方向を逆にする。
また、同時にチェック用発光ダイオードの点灯消灯も逆にする。
さらに、バイナリ値に比例したモータの回転数となるようCCPを設定
してモータを制御する。 割り込みは使っていません。
上記仕様のテストプログラムソースです。ダウンロードしてMPLABで
アセンブルしてお使い下さい。
★モータ制御テストプログラム