発行済み 2026-03-03
で遊んでいるときによくこのような状況に遭遇しますか?サーボs:同じモデルを買ったんですけど、回すとふるいのように揺れたり、角度が違ったりしませんか?長い間苦労した結果、問題は謎のパルス幅変調 (PWM) 信号にあることがわかりました。心配しないでください。今日はそれを徹底的に理解し、製品を確実かつ正確に動かします。
簡単に言えば、PWM は調光できるランプのようなものです。のためにサーボ、高レベルおよび低レベルのパルスを通じて回転を制御します。これは、人に走るように命令しているようなものと考えることができます。高いレベルは「走る」を表し、低いレベルは「停止」を表し、「走る」時間によって位置が決まります。サーボ.
この「実行」時間は、専門用語ではパルス幅と呼ばれます。標準的なサーボは通常、20 ミリ秒ごとに命令を受け取り、高レベルの持続時間は 0.5 ミリ秒から 2.5 ミリ秒の間で変化します。この時間の長さは、サーボの回転角度 0 度から 180 度に直接対応します。
したがって、サーボがコマンドに従っていないことがわかった場合、それはサーボに発行された「実行時間」が正確に計算されていないことが原因である可能性があります。
多くの友人は開発ボードの PWM 出力を直接使用していますが、サーボを 90 度回転させると常に違いがあることに気づきました。この背後にある理由は実際には非常に不公平です。コードでは 90 度を表すために「1500 マイクロ秒」を直接書き込むことができますが、各サーボ内の制御チップはわずかに異なります。
2人に「早く歩きなさい」と指示を出すようなものです。ある人はそれをジョギングと解釈し、別の人はそれをウォーキングと解釈します。サーボ自体には、コントローラーに「位置にいます」と伝えるためのフィードバック メカニズムはなく、ただ盲目的に実行されるだけです。
この問題を解決する最初のステップは、信号ソースが安定しているかどうかを確認することです。オシロスコープを使用して、実際の出力ハイレベル時間がコードに記述されている時間とまったく同じであるかどうかを確認します。多くの場合、わずか数十マイクロ秒がサーボのパフォーマンスに大きな違いをもたらす可能性があります。
単にコードを書き始めるのではなく、最初に小さな実験を行ってください。サーボを接続し、最小パルス幅(500マイクロ秒など)から開始し、サーボの回転限界位置を観察しながら徐々にパルス幅を増やしてください。
一定の範囲内ではサーボがまったく動かないことがわかります。これが機械的な限界です。回転し始めるまで増加し続けます。この開始値に注意してください。その後、サーボが回転しなくなるまで増加し続け、最終値を記録します。この範囲がステアリングギアの実際の作動範囲です。
多くのサーボの公称値は 0 ~ 180 度に対応して 0.5ms ~ 2.5ms ですが、実際の測定値は 0.6ms ~ 2.4ms に過ぎない場合があります。実測データを元にプログラムすることで、サーボを狙った位置にヒットさせることができます。
パルス幅に加えて、PWM の周波数も重要です。一般的なホビーサーボの場合、50Hz(つまり20ミリ秒周期)が標準です。しかし、便宜上、より高い周波数を使用する友人もいます。
周波数が高くなると周期は短くなります。コマンドは当初 20 ミリ秒に 1 回送信されていましたが、現在は 10 ミリ秒に 1 回送信されます。サーボ内部の回路が最後のコマンドに応答する時間がなかった可能性があり、次のコマンドが再び来ます。その結果、サーボは常に追いつこうとすることになり、それが熱やジッターとなって現れます。
️ この原則を覚えておいてください: サーボが広帯域制御を明確にサポートしていない限り、50Hz に固執してください。工業用グレードのデジタル サーボには、より高いリフレッシュ レート要件がある場合がありますが、それは特定のデータシートに依存するものであり、当然のこととみなすことはできません。
パルス範囲と周波数を決定したら、次のステップはプログラミングです。角度とパルス幅の間の線形関係を記述して、それを直接適用しないでください。一部のサーボは中立点付近で特に敏感ですが、両側では反応が遅いためです。
測定した角度点とパルス幅からテーブルを作成するマッピング機能を導入できます。たとえば、測定された 0 度は 600 マイクロ秒に対応し、45 度は 1200 マイクロ秒に対応し、90 度は 1500 マイクロ秒に対応します。次に、コード内で、ターゲット角度に基づいてテーブルを検索し、補間して実際のパルス幅を計算します。
こうすることで、ロボットアームが円を描くときの各関節の微小な回転が非常にスムーズになり、いちいち先へ急ぐ感じがなくなりました。コードの行数は増えていますが、製品の質感はまったく異なります。
上記をすべて正しく行ってもサーボがまだ震えている場合は、電源をチェックする必要があります。サーボ起動時の電流は非常に大きくなります。コントロールボードとサーボが同じ電源を共有している場合、電圧変動がマイクロコントローラーの PWM 生成に干渉します。
1. サーボには別電源を設け、制御信号用アース線と電源用アース線を接続してください。
2. 起動サージ吸収のため、サーボ電源の両端に大きなコンデンサ(470uF以上)を並列に接続してください。
3. PWM 制御線の長さを確認します。 30cmを超える場合は、干渉を防ぐためにシールド線を使用するか、磁気リングを追加することをお勧めします。
さらに、制御信号のリフレッシュは安定している必要があり、ループ内で PWM を生成するために遅延を使用しないでください。他の割り込みによって簡単に中断され、パルス幅が長くなったり短くなったりする可能性があります。ハードウェア PWM を使用するのが最も心配のないオプションです。
これを見ればサーボの使い方がよくわかるはずです。よりクールな製品を作りたい場合、鍵となるのは、PWM 信号の細部を素直になるように調整することです。サーボのデバッグ時に遭遇した最も厄介な問題は何ですか?コメント欄にメッセージを残していただければ、一緒に話し合い、解決していきます。役に立つと思ったら、「いいね!」をして共有することを忘れないでください。そうすれば、より多くの友人がステアリングギアのトラブルに別れを告げることができます。
更新時間:2026-03-03