PWM によるサーボ モーター角度の制御方法 – 完全ガイド_Servo_Industry Insights_Kpower
> 業界の洞察 >サーボ
テクニカルサポート

製品サポート

PWM によるサーボ モーター角度の制御方法 – 完全ガイド

発行済み 2026-04-13

パルス幅変調 (PWM) は、標準的なホビーの角度位置を正確に制御するために使用される標準的な方法です。サーボモーター。送信される電気パルスの幅を変えることによって、サーボ20 ミリ秒ごとに、サーボ特定の角度 (通常は 0 ~ 180 度) に移動します。このガイドでは、正確な信号仕様、段階的な制御ロジック、実践例、トラブルシューティングのヒントを提供するため、すぐに PWM サーボ制御を実装できます。

01基本原理: パルス幅は角度に直接マッピングされます

標準的なサーボ モーターには、入力 PWM 信号を読み取る小さな制御回路が含まれています。サーボの出力軸の位置は、パルス幅(高信号の継続時間) 固定 20 ミリ秒 (50 Hz) フレーム内。関係は線形であり、特定のパルス幅は特定のターゲット角度に等しい。

標準のパルス対角度マッピング (0 ~ 180° サーボの場合):

0度:0.5msパルス(500マイクロ秒)

90度(中立):1.5msパルス(1500マイクロ秒)

180度:2.5msパルス(2500マイクロ秒)

これらの値は業界標準です。サーボのデータシートを常に確認してください。ただし、標準サーボの 95% 以上がこの正確なマッピングに従っています。

02ステップバイステップ: 正しい PWM 信号の生成

サーボ角度を制御するには、次の 2 つの主要なパラメータを使用して繰り返し信号を生成する必要があります。

ステップ 1: PWM 周期を 20 ms (50 Hz) に設定します。

サーボは 20 ミリ秒ごとに新しいパルスを期待します。これは、PWM 周波数が 1 / 0.02 s = 50 Hz であることを意味します。この周波数は変更しないでください。そうしないと、サーボがジッターしたり、応答しなくなったりします。

ステップ 2: 希望の角度を選択し、パルス幅を計算します。

次の線形補間式を使用します。

パルス幅 (ms) = 0.5 + (角度 / 180) 2.0

例えば:

角度 = 45° → パルス = 0.5 + (45/180)2.0 = 0.5 + 0.5 =1.0ミリ秒

角度 = 135° → パルス = 0.5 + (135/180)2.0 = 0.5 + 1.5 = 2.0ミリ秒

ステップ 3: 計算された持続時間の間高パルスを適用し、残りの 20 ミリ秒の間低パルスを適用します。

実際には、タイマーを設定します。パルス幅 (たとえば、1.5 ms) の間 HIGH を出力し、残りの時間 (20 ms – 1.5 ms = 18.5 ms) で LOW を出力します。継続的に繰り返します。

03実際の例: サーボを 0° から 180° まで制御する

ロボット アームにサーボが接続されていると想像してください。完全に左 (0°) から完全に右 (180°) まで段階的に移動させたいとします。

信号シーケンス (各ラインは 20 ミリ秒の 1 サイクル):

サイクル 1: 0.5 ms の間 HIGH → サーボは 0°に移動します

サイクル 2: 1.0 ms の間 HIGH → サーボは 45° に移動します

サイクル 3: 1.5 ms の間 HIGH → サーボは 90° に移動します

サイクル 4: 2.0 ms の間 HIGH → サーボは 135° に移動します

サイクル 5: 2.5 ms の間 HIGH → サーボは 180° に移動します

観察された動作:サーボは各角度にステップし、その位置を保持します。制御回路は常に目標のパルス幅を受け取るため、ドリフトしません。

04一般的な実装方法 (ブランド名なし)

以下を使用して、必要な PWM 信号を生成できます。

マイクロコントローラータイマー/カウンターモジュール– 可変デューティ サイクルで 50 Hz PWM をセットアップします。デューティ サイクル = (パルス幅 / 20 ミリ秒) 100%。 1.5 ms パルスの場合、デューティ サイクル = 7.5%。

ソフトウェアビットバンギング– 遅延を使用して GPIO ピンを直接制御します。精度は劣りますが、学習には役立ちます。

専用サーボドライバーモジュール– これらのオフロード タイミング精度は、依然として同じ 0.5 ~ 2.5 ms のパルス範囲を必要とします。

重要な精度要件:パルス幅精度は±10 µs (マイクロ秒) 以内でなければなりません。タイミングが 20 µs 以上ずれると、ジッターや誤った角度が発生します。

05トラブルシューティング: サーボが正しい角度に達しないのはなぜですか?

症状 最も考えられる原因 修理
サーボは 0° ~ 90° の間でのみ動きます (180° ではありません)。 パルス幅範囲は 0.5 ~ 2.5 ms ではなく 1.0 ~ 2.0 ms です。 最小 0.5 ミリ秒、最大 2.5 ミリ秒を出力するようにコードを調整します。
サーボが極端に振動したりハム音がする パルス幅が機械的限界をわずかに超えています パルスを 0.5 ~ 2.5 ミリ秒に制限します。 2.6ミリ秒を決して送信しない
サーボが全く反応しない 間違った周波数 (50 Hz ではない) PWM 周期が正確に 20 ms (50 Hz) であることを確認します。
角度がオフセットされます (例: 1.5 ms では 90° ではなく 95° になります) サーボの中性点が標準ではありません 実際のパルスを90°測定し、マッピングを再調整します

実際のケース:よくある間違いは、一部のマイクロコントローラー ライブラリがデフォルトで 1.0 ~ 2.0 ミリ秒の範囲を使用していることです。あるユーザーは、サーボが合計 90 度しか回転しないと報告しました。パルス範囲を 0.5 ~ 2.5 ms に変更すると、完全な 180° 回転が復元されました。

06重要なポイント – これらの基本原則を繰り返します

PWM は、デューティ サイクルだけではなく、パルス幅によってサーボ角度を制御します。20 ミリ秒の固定期間では、絶対 High 時間 (0.5 ~ 2.5 ミリ秒) によって位置が決まります。

関係は線形です。パルス幅 = 0.5 ms + (角度/180)*2.0 ms。

常に 50 Hz (20 ms 周期) を使用してください。それ以外の周波数を使用すると、不安定な動作が発生したり、動かなくなったりします。

最小および最大パルス幅を確認してください。ほとんどの問題は、ハードウェアの故障ではなく、パルス範囲が正しくないことが原因で発生します。

07信頼性の高いサーボ制御のための実用的な推奨事項

一貫した結果を得るには、次の手順をすぐに実行してください。

1. サーボの実際の応答を測定します。0.5 ms、1.5 ms、2.5 ms のパルスを送信します。物理的な角度をマークします。それらが 0°、90°、180° ではない場合は、実際のパルスと角度のマッピングを記録します。

2. 100 ~ 200 μs の安全マージンを追加機械的な結合を防ぐため、両端で (最小パルス = 0.6 ミリ秒、最大 = 2.4 ミリ秒)。

3. 専用のタイマーハードウェアを使用する可能な場合はソフトウェア遅延の代わりに。タイマーベースの PWM は、メインコードがビジー状態の場合でも精度を維持します。

4. ロジックアナライザーまたはオシロスコープを使用したテストパルス幅を確認します。多くのソフトウェア シミュレーションはタイミング エラーを隠します。

5. マルチサーボプロジェクトの場合、電源をロジック電源とは別にしてください。サーボが停止すると 1 ~ 2A が消費され、電圧降下が発生して PWM 信号が破損する可能性があります。

20 ms 周期内で 0.5 ~ 2.5 ms のパルス幅範囲を厳密に遵守することで、標準的なサーボ モーターで正確で再現可能な角度制御を実現できます。最初に測定ステップを実装し、次にコードを微調整すると、サーボは指令した場所に正確に移動します。

更新時間:2026-04-13

未来に力を与える

お客様の製品に適したモーターまたはギアボックスを推奨するには、Kpower の製品スペシャリストにお問い合わせください。

Kpowerにメールする
お問い合わせを送信
WhatsApp メッセージ
+86 0769 8399 3238
 
kpowerMap