発行済み 2026-04-05
設定サーボモーターを特定の回転角度に調整することは、ロボット工学、オートメーション、DIY エレクトロニクスにおける基本的なタスクです。このガイドでは、標準を作成するための正確な手順、コード ロジック、およびキャリブレーション方法を説明します。サーボ特定のブランドや製品に依存することなく、必要な角度に回転できます。普遍的なパルス幅の原理、段階的なプログラミング手法、一般的な角度エラーのトラブルシューティング方法を学びます。最終的には、サーボ角度を正確に繰り返し設定できるようになります。
すべての標準サーボはパルス幅変調 (PWM)回転角度を決定する信号。制御信号は 50 Hz の周波数 (周期 = 20 ミリ秒) です。 20 ミリ秒ごとに、ハイパルス (「オン」時間) がサーボにどこへ行くかを指示します。
1.0msパルス→ 0 度 (ほとんどのサーボでは反時計回りに完全に回転)
1.5msパルス→ 90度(中心位置)
2.0msパルス→ 180 度(時計回り一杯)
これらの値は業界標準です。ただし、実際のエンドポイントは個々のサーボ間で若干異なる場合があります。以下の表は、普遍的な関係を示しています。
> 重要な事実:パルス幅により角度がリニアに変化します。 0° ~ 180° の角度の場合、必要なパルス幅 = 1.0 ms + (角度/180) × 1.0 ms。
以下の 4 つの普遍的な手順に従ってください。ブランド固有のソフトウェアまたはハードウェアは想定されていません。
標準的なサーボには 3 本のワイヤがあります。
ブラウンまたはブラック– アース (コントローラーの GND に接続)
赤– 電源 (ほとんどのサーボでは 5V。サーボの電圧定格を確認してください)
オレンジまたはイエロー– 信号 (PWM 対応ピンに接続)
> 重大な警告: 負荷がかかっているときは、マイコンの 5V ピンから直接サーボに電力を供給しないでください。サーボごとに少なくとも 1A を供給できる別の 5V 電源を使用してください。
50 Hz 信号 (20 ミリ秒周期) を生成するようにマイクロコントローラーまたはサーボ ドライバーを構成します。次に、目標角度に応じてパルス幅を設定します。
計算例:45°に設定する場合
パルス幅 = 1.0 + (45/180)×1.0 = 1.0 + 0.25 = 1.25 ms
計算例:135°に設定する場合
パルス幅 = 1.0 + (135/180)×1.0 = 1.0 + 0.75 = 1.75 ms
次のロジックは、任意のプラットフォーム (Arduino、Raspberry Pi、ESP32 など) で動作します。
PWM 周波数 = 50 Hz に設定します。 PWM 分解能 = 1 μs (マイクロ秒) に設定します。 ステップ関数 setAngle(angle_degrees): angle_degrees 180 の場合: angle_degrees = 180pulse_width_us = 1000 + (angle_degrees / 180)1000 #pulse_width_us は 1000 と 2000 の間です 書き込み PWM 信号: period = 20000 µs、high_time =pulse_width_us
コードをアップロードした後、サーボ ホーンを観察してください。ホーンが期待した位置に移動しない場合は、セクション 4 の校正に従ってください。
3 つの関節 (肩、肘、手首) を備えた単純なロボット アームを考えてみましょう。肘関節を 2 秒かけて 30° から 120° まで動かす必要があります。
ケースのステップ:
1. エルボのサーボを特定します。
2. 角度を徐々に増加させるループを作成します。
開始角度 = 30° → パルス幅 = 1.0 + (30/180)×1.0 = 1.1667 ms
終了角度 = 120° → パルス幅 = 1.0 + (120/180)×1.0 = 1.6667 ms
3. 20 ミリ秒ごとに角度を 1° ずつ増やします (1 秒あたり 50 ステップ)。
![]()
4. 合計時間 = (120‑30) ステップ × 0.02 秒 = 1.8 秒 (およそ)。
結果:肘は30°から120°までガクガクすることなくスムーズに動きます。この方法は、毎日何千もの趣味用ロボットや教育用ロボットで使用されています。
1.0 ~ 2.0 ms の範囲が正しくても、90° のコマンドの結果が 85° または 95° になる場合があります。これは製造公差による正常な現象です。各サーボを個別に校正します。
1. サーボを 0° に指令します (1.0 ms パルスを送信します)。
2. ホーンの実際の位置に印を付けます。
3. サーボを 180° に指令します (2.0 ms パルスを送信します)。
4. 実際の位置にマークを付けます。
5. 真の角度範囲を測定します。たとえば、物理的範囲が 170° のみの場合:
真の最小パルス = 1.0 ms (まだ動作します)
真の最大パルス = 2.0 ms は 170° を与えます → 180° を得るには 2.058 ms が必要です。
6. 標準の範囲を変更する代わりに、希望の角度を実際の範囲にマッピングします。
実際の角度 = 希望の角度 × (真の最大角度 / 180)
例: 真の最大角度 = 170° の場合、希望の 90° を取得するには:
実際の角度 = 90 × (170/180) = 85°→ 85°のパルスを送信します。
この線形マッピングにより、物理的なホーンが希望する場所に正確に到達することが保証されます。
確実に成功するには、次のエラーを回避してください。
一部のサーボは連続回転できるように変更されています。その場合、パルス幅は絶対角度を設定しなくなります。その代わり:
1.5ミリ秒→やめて
(例:1.3ms) → 差に比例した速度で一方向に回転
>1.5ミリ秒(例:1.7ms)→逆方向に回転
連続回転サーボの場合、フィードバックセンサー(エンコーダー)がないと「角度の設定」ができません。絶対角度位置決めには標準サーボ (0 ~ 180°) を使用します。
基本原則の繰り返し: 1.0ms(0°)~2.0ms(180°)のパルス幅を持つ50HzのPWM信号を生成し、サーボの回転角度を設定します。関係は直線的です。
当面の行動計画:
1. 接続するサーボを専用の 5V 電源に接続します (複数のサーボがある場合はマイクロコントローラーの 5V ピンではありません)。
2. 生成する好みのプラットフォームのサーボ ライブラリまたは生の PWM を使用して、任意の GPIO ピンに 50 Hz PWM 信号を送信します。
3. 計算するパルス幅:パルス値 = 1000 + (望ましい角度/180)1000.
4. テスト0°、90°、180°。実際の位置をマークします。
5. 校正する位置が 2° を超えてずれている場合は、セクション 4 のマッピング式を使用します。
6. 徐々に移動機械的ストレスを避けるために、20 ~ 50 ミリ秒ごとに角度を 1 ~ 2° ずつ変更して、角度間を調整します。
このガイドに従うことで、標準サーボを 0° ~ 180° の任意の角度に ±1° の精度で設定できます。ブランド固有のトリックは必要ありません。すべてのサーボが従う普遍的な PWM 規格のみが必要です。
更新時間:2026-04-05