<<前へ
次へ>>
サーボモータを4個駆動してみる(ソフト的に割り振る)
RCサーボモータを4個以上動かすことを考える
ほふく前進ロボット(アザラシ型)を作るためには、
4個のRCサーボモータを駆動しなくてはなりません。
ところが、AKI-H8/3664はPWM信号が3本しか出力できません。
つまりそのままでは、RCサーボモータを3個しか動かせないということになります。
では、4個以上のモータを動かすには、
AKI-H8/3664の作るPWM信号だけでは駄目なのでしょうか?
実は、
制御信号とモータ角度で説明したように、
ラジコン用サーボモータは、周期が20mS程度、ON時間が1mSから2mS程度のパルスで制御できます。
このパルスは、ほとんどの時間がOFFであることが分かると思います。
例えば、周期20mS、ON時間が2mSであれば、
18mSはOFFであり、この間に出力先を切り替え他のモータへのON信号を送ることができるはずです。
1本のパルスで複数のRCサーボモータを動かす。
この割り振りをきちんとやるには、
回路に論理演算のICなどをつなぎ、
ハード的にやるのが良いでしょう。
しかし、ここでは割り振る数が少ないので、
割り込みを使って1本のPWM信号をソフト的に割り振ってみましょう。
回路作成
P14(CN2-20),P15(CN2-21),P16(CN2-22),P17(CN2-23)に、
RCサーボモータの制御線をつなぐことにしましょう。
アルゴリズム
- PWM信号を周期5mSに設定。
- IMFAとIMFBで割り込みを行う。
- IMFAの割り込みでPWMを出力したいポートに1を出力。
次のデューティー比を設定。
IMFBの割り込みで0を出力する。