- 最終更新日
- 記事公開日
モータードライバって必要?ラズパイで制御するから不要では?

ラズパイとモーター関連の記事を見ていると、「PCA9685」や「TA7291P」といったモータードライバを使用している例が良くあります。
I2C接続16チャンネル サーボ&PWM駆動キット(秋月電子)
「なぜ、モータードライバを使うのか?」軽く調べてみましたが、
- モータードライバを使うとプログラムが簡単 → ラズパイの標準ライブラリで簡単に制御できる
- ラズパイではモーターを動かす電流を出せないから(トランジスタの増幅回路でも電流が足りない) → USBハブを使って、直接モーターに電流を供給すれば良い
- ハードウェアPWMで正確なパルスを出せる → 元々、ラズパイにPWMを出せるGPIOが用意されている
といった感じで、腑に落ちる答えがありませんでした。
結論を言えば、モータードライバが必要なのは、
- たくさんのサーボモーターを制御する必要があるとき
- ステッピングモーターを使うとき(ステッピングモーターには、サーボモーターのような電源入力端子が存在しないから)
ですね。
ラズパイだけで制御できるモーターの数は2つ
ラズパイに用意されているPWMのPinは、「PWM0」と「PWM1」の2つだけ。
- PWM0 ・・・ GPIO12、GPIO18
- PWM1 ・・・ GPIO13、GPIO19
3個以上のモーターをハードウェアPWMで制御しようとする場合には、モータードライバが必要になります。
もし、ソフトウェアPWMを使うなら、余ってるピンの数だけモーターに割り当てられますが・・・