最終更新日
記事公開日

モータードライバって必要?ラズパイで制御するから不要では?

モータードライバ

ラズパイとモーター関連の記事を見ていると、「PCA9685」や「TA7291P」といったモータードライバを使用している例が良くあります。

I2C接続16チャンネル サーボ&PWM駆動キット(秋月電子)

「なぜ、モータードライバを使うのか?」軽く調べてみましたが、

  • モータードライバを使うとプログラムが簡単 → ラズパイの標準ライブラリで簡単に制御できる
  • ラズパイではモーターを動かす電流を出せないから(トランジスタの増幅回路でも電流が足りない) → USBハブを使って、直接モーターに電流を供給すれば良い
  • ハードウェアPWMで正確なパルスを出せる → 元々、ラズパイにPWMを出せるGPIOが用意されている

といった感じで、腑に落ちる答えがありませんでした。

結論を言えば、モータードライバが必要なのは、

  • たくさんのサーボモーターを制御する必要があるとき
  • ステッピングモーターを使うとき(ステッピングモーターには、サーボモーターのような電源入力端子が存在しないから)

ですね。

ラズパイだけで制御できるモーターの数は2つ

ラズパイに用意されているPWMのPinは、「PWM0」と「PWM1」の2つだけ。

  • PWM0 ・・・ GPIO12、GPIO18
  • PWM1 ・・・ GPIO13、GPIO19

3個以上のモーターをハードウェアPWMで制御しようとする場合には、モータードライバが必要になります。

もし、ソフトウェアPWMを使うなら、余ってるピンの数だけモーターに割り当てられますが・・・

「ハードウェアPWM」と「ソフトウェアPWM」の違い

モーターを制御するためにパルス幅を変えた信号を送る必要があるのですが、その方法には、「ハードウェアPWM」と「ソフトウェアPWM」というものがあります。

どちらも同じような信号を出せるのですが、その信号の作り方に違いがあり、ソフトウェアPWMの方はやや信号の質が悪いです。

「ハードウェアPWM」と「ソフトウェアPWM」の違い

よって、ソフトウェアPWMで作られた信号でモーターを制御しようとすると、モーターが勝手にプルプル動いたり、指定した位置とはズレて停止してしまうような不具合が起きることがあります。

対して、「ハードウェアPWM」の信号は非常に正確で、質の良い信号を作ることができます。

この記事のURLをコピー

メールアドレスは公開されませんのでご安心ください。また、* が付いている欄は必須項目となります。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。

関連情報

運営者プロフィール
コダマ

職業はIT系フリーランス。過去、電子配線業務の経験が10年ある為、はんだづけも得意です。宮崎県在住、30代・2児の父親。

プロが教える!イチからわかるハンダ付けのコツ(工学社)の著者です。

カテゴリー