PIC16F1705は、PWMモジュール2つ内蔵しています。

それぞれに違うパルス幅を設定するだけで、2つのサーボモータを別々の角度まで動かすことができます。

 

前回はひとつのサーボモータを簡単に動かしてみましたが、モータが増えると考慮点がでてきます。ひとつにはモータ動作による電気的なノイズ。もうひとつは大電流が必須になってくることです。

 

ノイズ対策として、制御する側のPICと制御される側のモータを電気的に分離するため、フォトカプラを使ってみました。(電磁リレーやソリッドステートリレーなども可)

 

実験用に使っている可変圧電源の最大電流が1Aだったため、2つのサーボモータが同時に動作しようとすると途中で止まってしまったり無理な動作で極端に電圧が下がってしまったりすることが起こりました。

 

3Aまで供給できる(定格は2A)LM2596Sモジュールを使うと安定しました。いろいろと調べてみるとこのSG-90サーボモータは1つで最大500mAが必要のようで(カタログがなかなか見つからない)、電流値に余裕のある電源が必須でした。

 

今後8つまで制御するつもりがあり、大バッテリーは避けたいと思っているので、モータをシリアル的に動作させるためスイッチもMOSFETで実装してみました。

 

今回の回路↓モータは2つですが見やすいよう1つで省略。

PIC16F1705は2.3Vから動作できるのでエネループ2本=2.4Vで充分です。モータ側は5V2Aくらいの電源が必要です。

今回使ったTLP781フォトカプラ内のLEDは1.1V電圧降下で定格16mAとデータシートにあるので、計算して((2.4-1.1)/0.016=81.25)抵抗値を求めました。

 

動画も撮ってみました。パルス幅の設定がそれぞれで異なるので同時に逆回転している場合があるのがわかるかと思います。

 

 

 

プログラム的には、PWM4DCHとLの設定が増えるだけで、前回のプログラムとほとんど変わりません。