PR

【解決】Raspberry Piでサーボモータが動かない原因と対処法まとめ

4. Raspberry Pi

Raspberry Piでサーボモータを動かそうとしたとき、

・全く動かない
・たまにしか動かない
・ボタンを押しても反応しない

といった問題に悩んでいませんか?

実はこれらの原因は1つではなく、
いくつかの典型的な原因があります。

本記事では、実際にハマった経験をもとに、
原因と対処法を分かりやすく解説します。

スポンサーリンク

結論:原因は主にこの3つ

Raspberry Piでサーボモータが動かない原因は、
主に以下の3つです。

① パルス幅(PWM設定)が合っていない
② 電源が不安定(電流不足)
③ 配線ミス(GND未接続など)

まずはこの3点を確認してください。

すぐ確認するポイント(1分チェック)

① パルス幅を調整しているか
② 外部電源を使用しているか
③ GNDが共通になっているか

→ この3つでほとんど解決します

動作確認環境

・Raspberry Pi 5
・サーボモータ(SG90)
・外部電源(5V)

原因① パルス幅(PWM設定)が合っていない

サーボモータはPWM信号のパルス幅によって角度を制御します。

しかし、サーボモータは製品ごとに適切なパルス幅が異なるため、
デフォルト設定では正しく動作しない場合があります。

解決法

servo = Servo(22, min_pulse_width=0.0005, max_pulse_width=0.0025)

パルス幅を調整することで、
正常に動作する場合があります。

原因② 電源が不安定

サーボモータは動作時に大きな電流を消費します。

そのため、電源が不安定だと電圧が低下し、
正常に動作しないことがあります。

※安定して動かしたい場合は、外部電源の使用を推奨します。

対策

・外部電源を使用する
・電流容量は2A以上を推奨
・GNDを共通にする

原因③ 配線ミス

特に多いのがGNDの接続ミスです。

正しい接続:

電源GND ↔ Raspberry Pi GND ↔ サーボGND

症状別の対処法

全く動かない

→ 配線 or PWM

たまに動く

→ 電源 or ノイズ

勝手に動く

→ ソフトPWMのジッター

実際に解決した原因

筆者の環境では、
パルス幅(PWM設定)が原因でした。

min_pulse_width、max_pulse_widthを調整することで、
正常に動作するようになりました。

やってはいけないこと

・Raspberry Piの5Vピンから直接サーボを駆動する
・GNDを接続しない
・デフォルト設定のまま動かそうとする

※サーボモータはRaspberry Piの5Vピンから直接駆動できる場合もありますが、
電流不足により不安定になることがあります。

本記事では安定動作のため、外部電源の使用を推奨しています。

症状と原因の対応

症状主な原因
全く動かない配線ミス / PWM設定
たまに動く電源不足
勝手に動くソフトPWM

関連記事

サーボモータの動かし方
ボタンでサーボ制御
サーボ比較記事

まとめ

・PWM設定を見直す
・電源を安定させる
・配線を確認する

この3つでほとんどの問題は解決できます。

タイトルとURLをコピーしました