マイクロコントローラーによるマイクロサーボ角度制御の完全ガイド_Servo_Industry Insights_Kpower
> 業界の洞察 >サーボ
テクニカルサポート

製品サポート

マイクロコントローラーによるマイクロサーボ角度制御完全ガイド

発行済み 2026-04-07

このガイドは、標準マイクロの回転角度を正確に制御するために必要なすべてを提供します。サーボマイクロコントローラーを使用します。核となる原則はシンプルです。サーボの出力軸位置はパルス信号の幅によって決まります。最も一般的なマイクロの場合サーボs、1.5 ミリ秒 (ms) のパルス幅はシャフトを 90° の中心に置き、1.0 ms で 0° に移動し、2.0 ms で 180° に移動します。ただし、実際のサーボは異なります。この記事では、特定のブランドに依存せずに正確な度ごとの制御を実現するための検証済みの方法、コード例、およびキャリブレーション手順を説明します。

01なんとマイクロサーボパルス幅を角度に解釈

マイクロサーボ小型 DC モーター、フィードバック ポテンショメータ、および制御回路が含まれています。回路は受信パルス幅をポテンショメータの位置と比較します。パルス幅が希望の位置と一致するとモーターが停止します。パルス幅と角度の関係は、サーボの機械的限界内で線形です。

標準信号仕様:

パルス繰り返し率:50Hz(周期=20ms)

使用可能なパルス幅範囲:通常 1.0 ミリ秒~2.0 ミリ秒

対応角度範囲:0°~180°

これは、サーボが 20 ミリ秒ごとのパルスを予期していることを意味します。パルス幅を 1.0 ms から 2.0 ms に変更することで、シャフトを 0° から 180° まで指令します。

一般的な現実のケース:

2つ買うんですねマイクロサーボ同じバッチからのものです。 1.5 ms パルスを送信すると、1 つは完全に 90° の中心になります。もう 1 つは 85° で止まります。これは、フィードバック ポテンショメータと機械アセンブリの製造公差が原因で発生します。したがって、常に各サーボを個別に校正してください。

02ステップバイステップ: コードによるサーボ角度の制御

ほとんどのマイクロコントローラー プラットフォームには、安定した 50 Hz パルスを生成するサーボ ライブラリが組み込まれています。以下は、PWM 出力およびサーボ制御ライブラリをサポートするマイクロコントローラーで動作する一般的なコード例です。

ハードウェアのセットアップ:

サーボの電源線 (赤) を、少なくとも 500 mA を供給できる 5V 電源に接続します。

アース線 (茶色または黒色) をマイクロコントローラーの GND に接続します。

信号線 (オレンジ、黄色、または白) を PWM 対応ピン (ピン 9 など) に接続します。

コード構造の例 (ユニバーサル疑似コード):

#含むサーボmyServo; void setup() { myServo.attach(9); // サーボをピン 9 に接続します } void loop() { myServo.write(0); // コマンド 0 度の遅延(1000); myServo.write(90); // コマンド 90 度の遅延(1000); myServo.write(180); // コマンド 180 度の遅延(1000); }

書き込み(角度)この機能は、デフォルトのマッピング (0°→1.0 ms、180°→2.0 ms) を使用して、角度を対応するパルス幅に自動的に変換します。ただし、このデフォルトは特定のサーボと一致しない可能性があります。

03キャリブレーション: 真のパルス幅制限を見つける

正確な角度を実現するには、サーボで 0° と 180° を生成する正確なパルス幅を決定する必要があります。

校正手順:

1. ポインタを取り付けるか、シャフトの中立位置に印を付けます。

arduino micro servo degree_arduino micro servo degree_arduino micro servo degree

2. 1.5 ms パルスを送信します。シャフトは90°近くになるはずです。オフセットがある場合は注意してください。

3. シャフトの動きが停止するまで、パルス幅を 10 µs ずつ減少させます。それが本当の 0° パルス幅です。

4. シャフトの動きが停止するまで、パルス幅を 1.5 ms から 10 µs ずつ増加させます。それが本当の 180 度のパルス幅です。

3 つの一般的なサーボからの典型的な測定結果:

サーボサンプル 真の 0° パルス (μs) 真の 180° パルス (μs) 中心90°パルス(μs)
サンプルA 540 2420 1480
サンプルB 510 2450 1500
サンプルC 570 2380 1460

これらの値は、1000 μs ~ 2000 μs を想定すると、最大 15° の誤差が生じる可能性があることを示しています。常に校正された値を使用してください。

コードでのキャリブレーションの適用:

ほとんどのサーボ ライブラリでは、アタッチ()オーバーロードまたは別の関数。例:

myServo.attach(9, 540, 2420); // ピン、最小パルス幅 (μs)、最大パルス幅 (μs)

校正されたリミットを使用して取り付けた後、myServo.write(90)は正確な中心パルス (この場合は 1480 μs) を送信し、真の 90° を与えます。

04一般的な問題と解決策

問題 代表的な原因 検証済みの修正
サーボのジッターまたは振動 電源が不足している、またはノイズが多い 別の 5V レギュレータ (例: 5V 1A) を使用し、サーボ近くの電源とグランドの間に 100 µF のコンデンサを追加します。
サーボが指令された角度まで動かない パルス幅範囲の不一致 校正手順を実行し、カスタムの最小/最大パルス幅を設定します。
サーボは 0° ~ 90° の間でのみ回転します パルス幅は 1.5 ミリ秒を超えない コードを確認してください:書き込み(180)実際には 1.5 ms を超えるパルスを送信します。カスタム接続範囲を使用する
サーボがすぐに熱くなる パルス繰り返し率が高すぎる サーボ ライブラリが 50 Hz (20 ms 周期) を出力していることを確認します。一部の PWM 構成は、より高い周波数を出力します。

05信頼性の高い角度制御のための実用的な推奨事項

ステップ 1: 常に各サーボを個別に校正する– 工場出荷時の仕様を想定しないでください。 5 分間かけて、真の 0° および 180° のパルス幅を測定します。

ステップ 2: 専用の電源を使用する– マイクロコントローラーの 5V ピンからマイクロサーボに直接電力を供給しないでください。突然の電流の引き込みにより、コントローラーがリセットされる可能性があります。 5V 1A UBEC または安定化された外部電源を使用します。

ステップ 3: キャリブレーション値をコードに保存する– キャリブレーション後、最小および最大パルス幅をハードコードします。例:

#define SERVO_PIN 9 #define SERVO_0_PULSE 540 // 0° の測定 µs #define SERVO_180_PULSE 2420 // 180° サーボの µs の測定 myServo; myServo.attach(SERVO_PIN, SERVO_0_PULSE, SERVO_180_PULSE);

ステップ 4: 簡単なテストで検証する– コマンド0°、45°、90°、135°、180°。分度器を使用して精度を確認します。角度が 2° を超えてずれている場合は、キャリブレーションを繰り返します。

ステップ 5: 設定を文書化する– 各サーボの校正されたパルス幅を書き留めます。サーボを交換した場合は、すぐに再キャリブレーションを行ってください。

06核となる原則を改めて述べます:

マイクロサーボ角度はパルス幅によって直接制御されます。標準マッピング (1.0 ms = 0°、1.5 ms = 90°、2.0 ms = 180°) が開始点です。実際のサーボでは、真の 0° ~ 180° の精度を実現するには、最小パルス幅と最大パルス幅を個別に校正する必要があります。キャリブレーションを行わないと、10° ~ 20° のオフセットが発生する可能性があります。

キャリブレーション手順に従い、コード内のパルス幅範囲をカスタマイズすることで、ロボット アームからカメラ ジンバルまで、あらゆるアプリケーションで再現性のある正確なサーボ位置決めを実現できます。常に各サーボの実際の限界をテストし、それに応じてコードを調整してください。これにより、推測に頼る必要がなくなり、プロジェクトが常に確実に動作するようになります。

更新時間:2026-04-07

未来に力を与える

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

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