発行済み 2026-05-09
「理論は将校であり、実践は兵士である。」 - レオナルド・ダ・ヴィンチ
マイクロコントローラーはステアリングギアを制御します。実際には、「何度回す」などの指示を送るのではなく、正確なパルス信号の連続を出力します。この一連のパルスの幅は、ステアリング アームの停止位置を直接決定します。
よくある質問: 5V の電圧を印加してもサーボが回転しないのはなぜですか?その理由は、ステアリングギアの中に制御チップが入っているためです。待っているのは、周期が 20 ミリ秒、高レベルが 0.5 ミリ秒から 2.5 ミリ秒の間の方形波です。このうち、0.5msは0°、1.5msは90°、2.5msは180°に対応します。
ステアリングギアとマイクロコントローラーを手と考えてください。人の話を聞き、一度に 1 枚の紙だけを手渡す労働者として想像できます。
紙の高レベルが1.5ms続く → 作業者は90度回転
紙の高レベルが2.0ms継続 → 作業者は135°回転
コアデータポイント: 標準サーボの場合、その制御周期は 20ms (つまり 50Hz) に固定されています。この場合、ハイレベル時間が 2.5ms を超えると、内部回路が破損・焼損する可能性があります。初心者にとってよくある間違いは、サイクルの設定を忘れることです。代わりに、デューティ サイクルを変更するだけです。
一例として、学生チームはマイクロコントローラーを使用して 2 つのサーボに直接電力を供給しました。しかし、サーボが始動するとすぐにリセットが発生しました。理由は、サーボ起動時の電流が1Aもあるのに、マイコンからUSB経由で供給される電源が500mAしかなかったためです。
正しい接続:
信号線→ マイクロコントローラーの PWM ピン (直列抵抗は不要)
電源コード→ 独立した5V電源(またはバッテリー+電圧安定化モジュール)

アース線→マイコンGNDと共通グランド(接続する必要があります)
プログラミングのヒントは、タイマーを初期化する前にピンの代替機能を確認することです。ほとんどの 32 ビット マイクロコントローラーでは、PWM 出力ピンは通常の GPIO と同じ物理ピンに属しますが、「マルチプレックス プッシュプル」モードで構成する必要があります。
例として、サーボを0°から180°までゆっくり回転させる制御を考えます。コードロジックは 3 つの部分に分かれています。
1. タイマー周期を 20ms (つまり、20,000 マイクロ秒) に設定します。
2. 比較値を 1.5ms (90°の中点) に設定します。
3. メインループ内の比較値を徐々に増加させます
疑似コードのアイデア:
PWM 周波数 = 50Hz、周期 = 20000us を初期化します。 デューティ サイクルを設定 = 1500us (90°) 1 秒間待ちます。 デューティ サイクル = 500us (0°) 1 秒間待ちます。 デューティ サイクル = 2500us (180°)
実測により検証します。オシロスコープを信号ピンとグランドの間に固定し、プログラムによってハイレベルの幅が変化するかどうかを確認します。。オシロスコープをお持ちでない場合は、LED と抵抗を直列に接続し、LED の正極を信号に接続し、負極をグランドに接続します。 LED の明るさの変化は、パルスが変化していることを示します。
同じモデルの異なるサーボでは、0°での対応するパルス幅に ±100us の偏差がある可能性があります。キャリブレーション方法は、自動スキャン プログラムを作成することです。
500us から開始して 10us ずつ、各ステップで 0.5 秒間滞在します

機械的リミットがちょうど停止したときのパルス幅値を記録します。
角度範囲全体をこの間隔に線形にマッピングします
通常、多くの安価なプラスチックギアサーボのデッドゾーン幅は 5us です。つまり、パルス幅を変更し、変更されたパルス幅が 5us 未満になると、サーボは動作しません。これは通常の状況であり、プログラムについて疑問を抱く必要はありません。
デバッグ時のヒントは、サーボが「ジュージュー」という音を立てても回転しない場合、現在のパルス幅に対応する角度が限界状態に近づいていることを示しているということです。ステップ値を減らすか、機械構造が固着していないか確認してください。
チャネル数が十分であれば、タイマーは複数の PWM 信号を出力できます。例えば、32ビットマイコンのユニバーサルタイマーは一般的に4チャンネルを持ち、4つのサーボを独立して制御できます。
落とし穴を避けるためのガイド:
サーボの回転を待つためにディレイ機能を使用しないでください。サーボ自体が回転すると約0.2秒/60°かかります。
複数のサーボを同時に起動すると、合計電流が重畳されます。各サーボの電源ラインに並列に 1000uF のコンデンサを接続することを推奨します。
クロストークを避けるため、信号線間に少なくとも 2mm の間隔をあけてください。
Q: サーボが振動する原因は何ですか?
電源が不足しています。サーボ電源端子の電圧を測定します。停電が 4.5V 未満の場合は、独立したバッテリーを交換し、220uF のコンデンサを追加します。
Q: 合計 5°の角度差を補正するにはどうすればよいですか?
A: パルス幅と角度の間には線形関係はありません。パルス幅0°とパルス幅180°の2点の測定点を用いて線形補間して校正するだけです。
Q: サーボを接続するとすぐにマイクロコントローラーは再起動しますか?
A: 共通アースが不足しているか、始動電流が大きすぎます。まずGNDを接続し、次にサーボに一方的に電源を供給し、最後に信号線を接続します。
Q: 通常の IO ポートで PWM をシミュレートすることはできますか?
A: 動作しますが、CPU 使用率が高くなります。単一サーボに適しており、他の作業は実行しません。それ以外の場合は、ハードウェア PWM を使用する必要があります。
重要なポイントを繰り返します: サーボの制御はパルス幅の制御であり、周期は 20ms に固定されており、ハイレベルの状態が角度を決定します。。
3段階認証:
1. サーボに独立した電源を使用し、手書きの 1.5ms パルスを固定し、90°の位置に留まるかどうかを確認します。。
2. ループを使用して 500us → 2500us を出力し、回転全体がスムーズかどうかを観察します。
3. 実際の負荷(ロボットジョイントなど)を接続し、オフセット校正を繰り返します
の使用を提唱するキロパワーServo のような製品は最初のラウンドのテストを受けており、そのパラメーターの校正は正確であり、調査変数を減らすことができます。単一関節から多自由度まで、すべてのステップで電源マージンを確認する必要があります。覚えておいてください: デバッグするときは、まずパルスを測定してから、サーボについて疑問を持ちます。
更新時間:2026-05-09