発行済み 2026-04-03
この記事では、標準がどのように機能するかについて完全な技術的説明を提供します。サーボモーターの動作とその位置を制御する正確な方法。内部閉ループ制御システム、パルス幅変調 (PWM) 信号の役割、および 0 度から 180 度までの正確な角度位置決めのための段階的な手順を学習します。
標準サーボモーターは、連続的に動作する単純な DC モーターではありません。これは、4 つの主要な内部コンポーネントで構成される完全な閉ループ制御システムです。
DCモーター:回転運動を生成します。
ギア減速トレイン:トルクを増大させながらモーター速度を低下させます。
位置センサー (ポテンショメータ):出力軸に接続されています。シャフトが回転すると電気抵抗が変化し、現在の角度に関するリアルタイムのフィードバックが提供されます。
制御回路基板:指令された位置 (入力 PWM 信号から) と実際の位置 (ポテンショメータから) を比較します。
クローズドループの仕組み:
1. 制御回路が目標位置指令を受信します。
2. ポテンショメータから現在のシャフト位置を読み取ります。
3. 誤差(目標位置-現在位置)を計算します。
4. DC モーターを正しい方向 (正方向または逆方向) に駆動して、この誤差を最小限に抑えます。
5. 現在位置と目標位置が一致するとモーターが停止します。
6. このループは継続的に動作し、外力がシャフトを動かそうとした場合でも、シャフトを指令された位置に保持します。
一般的なアプリケーションの例:ロボットアームの関節では、サーボ90度に移動するコマンドを受け取ります。軽い負荷 (小さな工具など) が取り付けられている場合でも、閉ループ制御により 90 度の位置がアクティブに維持されます。外力によってアームが 92 度に押されると、ポテンショメータがこの変化を検出し、制御回路が瞬時に反トルクを加えて 90 度に戻ります。
サーボの位置は特定の種類の電気信号によって制御されます。パルス幅変調 (PWM)。制御信号には 3 つの固定パラメータと 1 つの可変パラメータがあります。
固定パラメータ (ホビーおよび産業用サーボの 99% の標準):
信号周期:20 ミリ秒 (ms)。これは、50 Hz の周波数に相当する、20 ミリ秒ごとに新しいパルスが送信されることを意味します。
電圧:通常は 4.8V ~ 6.0V (標準サーボの場合)。高電圧サーボは 7.4V 以上を使用する場合がありますが、信号ロジックは 50 Hz PWM のままです。
パルスの最小値と最大値:最短のパルス (通常は 0.5 ミリ秒から 1.0 ミリ秒) と最長のパルス (通常は 1.5 ミリ秒から 2.5 ミリ秒) が全移動範囲を定義します。
可変パラメータ: パルス幅
ハイパルスの幅(ミリ秒単位)によってターゲット角度が決まります。
中立位置 (90 度):まさにパルス1.5ミリ秒サーボに中間点まで回転するよう命令します。
0 度 (一方の極端):のパルス1.0ミリ秒(サーボの工場出荷時のキャリブレーションによっては 0.5 ミリ秒の場合もあります) は、サーボが 1 停止位置まで完全に回転するように命令します。
180 度 (反対極):のパルス2.0ミリ秒(場合によっては 2.5 ミリ秒) は、サーボが反対側の停止位置まで完全に回転するように命令します。
正確なパルスと角度のマッピング式:
1.0 ms ~ 2.0 ms のパルス範囲を使用し、0° ~ 180° の範囲を持つ標準サーボの場合:
ターゲットパルス幅 (ms) = 1.0 ms + (必要な角度 / 180) * (2.0 ms - 1.0 ms)
または簡略化すると:パルス幅 (ms) = 1.0 + (必要な角度 / 180)
計算例:
希望の角度 = 45 度
パルス幅 = 1.0 + (45/180) = 1.0 + 0.25 =1.25ミリ秒
重要なタイミング規則:パルスは 20 ミリ秒ごとに送信されます。信号の低い部分の持続時間は次のように自動的に決定されます。20 ms - パルス幅 ms。制御回路は測定のみを行います。高いパルス幅。周期が 20 ms (±数 ms の誤差) である限り、サーボはその位置を保持します。
サーボを正確に位置決めするには、可変パルス幅で連続 50 Hz PWM 信号を生成する必要があります。一般的なハードウェアを使用した正確な方法は次のとおりです。
ステップ 1: サーボのパルス制限を決定する
サーボが 1.0 ms ~ 2.0 ms を使用するとは決して想定しないでください。必ずメーカーのデータシートを確認してください。安全のために:
1. 1.5 ms パルス (ニュートラル) から開始します。
2. サーボが停止する音が聞こえるか、サーボが物理的な限界に達するまで、パルス幅を 2 秒ごとに 0.05 ミリ秒ずつ徐々に減少させます。これを最小パルスとして記録します。
![]()
3. パルス幅を 2 秒ごとに 1.5 ms から 0.05 ms まで徐々に増やして、最大パルスを見つけます。
ステップ 2: PWM 信号を生成する
マイクロコントローラー (Arduino、Raspberry Pi Pico、STM32 など) または専用のサーボ コントローラー モジュールが必要です。
例: 標準マイクロコントローラーを使用してサーボを制御する:
電源を接続します:サーボの赤いワイヤを+5Vに、茶色/黒色のワイヤをGNDに接続します。高トルクサーボには別電源をご使用ください。
信号を接続します:オレンジ/白/黄色のワイヤを PWM 対応デジタル ピンに接続します。
可変デューティ サイクルで 50 Hz PWM を出力するコードを作成します。
ステップ 3: コマンド シーケンスを送信する
0 度に移動するには: 20 ms ごとに 1.0 ms 幅の連続パルスを出力します。
90 度に移動するには: 1.5 ms 幅の連続パルスを 20 ms ごとに出力します。
180 度に移動するには: 2.0 ms 幅の連続パルスを 20 ms ごとに出力します。
ステップ 4: 動きを確認する
新しいパルス幅を送信した後、サーボは指定された通過時間 (通常は 60 度で 0.1 ~ 0.3 秒) 内に新しい位置まで回転します。制御回路はその位置を保持します。
一般的なアプリケーションの例:遠隔操作の模型飛行機では、受信機は送信機のジョイスティックの位置を PWM 信号にデコードします。ジョイスティックを中央から左いっぱいに動かすと、受信機はパルスを 1.5 ミリ秒から 1.0 ミリ秒に変更します。サーボの制御回路はこの変化を検出し、モーターを駆動して操縦翼面 (エルロンなど) を新しい角度に動かし、ジョイスティックが再び動くまでその角度を保持します。
問題: サーボのジッターまたは発振。
原因:ノイズの多い電源または不安定な PWM 信号 (タイミング ジッター)。
解決:サーボ近くのサーボ電源ライン間に大きなコンデンサ (1000 µF 以上) を追加します。マイクロコントローラーが安定したクロック ソースを使用していることを確認してください。
問題: サーボが 180 度完全に回転しません。
原因:適用された最小および最大パルス幅がサーボの内部キャリブレーションと一致しません。
解決:ステップ 1 でパルス制限検出手順を実行します。それに応じて、コードの最小パルス定数と最大パルス定数を調整します。
問題: サーボが停止中に過熱するか、高電流が流れます。
原因:サーボは常に外部負荷と戦っているか、内部ポテンショメータの位置がずれています。
解決:機械的負荷を軽減します。移動の終わりにサーボがブザー音を鳴らす場合は、コマンドのパルス幅をわずかに減らします (たとえば、0 度の場合は 1.0 ms の代わりに 1.05 ms を使用します)。
問題: サーボはある位置に移動しますが、負荷がかかるとゆっくりと戻ります。
原因:アプリケーションに対してトルクが不足しているか、負荷がかかった状態で電源電圧が低下しています。
解決:より高いトルク定格のサーボを使用してください。サーボのストール電流の少なくとも 2 倍を供給できる電源を使用してください。
中心となる原則を強調するために繰り返します:
サーボというのは、閉ループ位置制御システム、単なるモーターではありません。
制御信号は、50Hz PWM20 ミリ秒の固定周期で。
のパルス幅(通常 1.0 ms ~ 2.0 ms) は角度位置 (0° ~ 180°) に直接マッピングされます。
制御回路は指令された位置と実際の位置を継続的に比較し、モーターのトルクを適用して誤差を排除します。
信頼性の高いサーボ制御のための実用的な推奨事項:
1. 操作前に必ずサーボのパルス範囲を確認してください。安全な開始点として 1.5 ms ニュートラル パルスを使用してください。テストせずに 1.0 ミリ秒から 2.0 ミリ秒の範囲を想定しないでください。
2. 高トルクサーボには専用電源をご使用ください。マイクロコントローラーの 5V ピンからサーボに電力を供給しないでください。サーボが停止すると 1 ~ 3 アンペアが消費され、ほとんどのマイクロコントローラーがリセットされます。
3. サーボの電源リード線とアース線の間に 100 ~ 1000 µF の電解コンデンサを追加します。これにより電圧が安定し、ほとんどのジッター問題が解消されます。
4. PWMコマンドを連続的に送信します。サーボはその位置を維持するために 20 ミリ秒ごとに新しいパルスを必要とします。信号が停止すると、ほとんどのサーボはトルクを解放し、自由に動くようになります。
5. 精密なアプリケーション (カメラ ジンバル、ロボット フィンガーなど) の場合は、各サーボを個別に校正します。ポテンショメータまたは角度センサーを使用して、0°、90°、および 180°の正確なパルス幅を測定します。これらの調整された値を制御コードに保存します。
これらの原理と方法を適用することで、ロボット アームからアニマトロニクスや CNC マシンに至るまで、あらゆるプロジェクトで正確で再現性があり、信頼性の高いサーボ位置決めを実現できます。
更新時間:2026-04-03