発行済み 2026-03-10
デバッグ時、サーボ、次のような状況に遭遇したことがありますか。接続は正しく、コードはエラーを報告しませんが、サーボコマンドに従わないだけで、止まらずに震えたり、回転の途中で止まってしまったりしませんか?心配しないでください、これはプレイするほぼすべての人が陥りやすい落とし穴です。サーボが踏み込みます。サーボはシンプルに見えますが、実は中にはたくさんの仕掛けが詰まっています。選択から電源供給、信号干渉に至るまで、どのリンクでも小さな間違いがあると、長い間苦労することになります。この実験レポートでは、私たちが遭遇した落とし穴と、ステアリングギアをうまく制御するための解決策を整理します。
サーボが揺れます。これは、よく「揺れる」または「前後に揺れる」と呼ばれるものです。これは通常、不安定な信号または電圧の変動によって引き起こされます。特にPWM波制御を使用する場合、制御信号の周波数がサーボの内部回路と一致していないと「迷った」状態となり、空回りしたように見えます。実験では、ボード上の 5V 出力電流が制限されているため、直接電源を使用する場合にジッターが特に顕著であることがわかりました。サーボに一瞬大電流が必要になると電圧が下がってしまい、制御チップがリセットされて信号が乱れてしまいます。この問題を解決する最も直接的な方法は、サーボ用に複数のバッテリーや電圧安定化モジュールなどの外部電源を別途用意し、制御基板とサーボの電源を完全に分離することです。
配線は簡単そうに見えますが、実験が失敗しやすい箇所です。サーボには通常、電源線 (通常は赤)、アース線 (茶色または黒)、および信号線 (オレンジまたは黄色) の 3 本の線があります。多くの人は、電源線とアース線は「共有アース」する必要があるという重要な点を無視しています。それはどういう意味ですか?制御基板(マイコンなど)とサーボの電源です。それらのマイナス端子は一緒に接続する必要があります。一緒にアースされていないと、制御基板が送る信号電圧とサーボが受け取る基準電圧が正確ではなくなり、当然信号が乱れてしまいます。 ️ 正しい接続方法は、サーボの電源線とアース線を外部電源に接続し、外部電源のマイナス極(アース)を制御基板のアースに接続することです。最後に、信号線は制御基板の IO ポートに接続されます。
サーボ用電源を選ぶときは、電圧が正しいかどうかだけではなく、電流が足りているかどうかが重要です。実験で使用した金属製ステアリング ギアの公称失速電流は 1 ~ 2 アンペアです。出力容量が500mAしかない電源を使用すると、サーボが負荷をかけて回転すると電流が足りなくなり、すぐに電圧が低下してしまいます。最悪の場合、トルク不足で回らなくなったり、最悪の場合、制御基板が再起動してしまいます。したがって、電源を選択する際には、サーボの最大動作電流より大きい、安定した電圧および電流出力能力を備えたものを選択するのが最善です。たとえば、単一の小型サーボの場合は、1A 以上の電源を使用することをお勧めします。高トルクサーボの場合、または複数のサーボを同時に駆動する場合は、2A またはさらには 5A のスイッチング電源が必要です。手間を省いて開発ボードの 5V ピンから直接電源を取ることは考えないでください。
コードや配線を何度もチェックしたのに、サーボが動かない場合があります。このとき、慌ててサーボの故障を疑う必要はありません。まず信号線が緩んでいないか確認してください。 PWM の初期化と構成が正しく行われていない可能性もあります。多くのマイクロコントローラーの PWM ピンは、デフォルトでは波形を出力しません。最初にプログラムで周波数とデューティ サイクルを設定する必要があります。周波数に関して言えば、ほとんどのアナログ サーボで必要な PWM 周波数は 50Hz、つまり 20ms の周期です。周波数の設定を200Hzなど間違えると、サーボ内部の回路が信号を正しく解析できなくなり、当然応答しなくなります。最初に PWM を初期化してから、サーボをニュートラル位置に戻すパルス (1.5ms のハイレベル時間など) を与えて、サーボがわずかに動くかどうかを確認することを忘れないでください。
サーボをスムーズに回転させたい場合、コードロジックは実際には複雑ではありません。重要なのは、PWM 信号のハイ レベルの期間、つまりパルス幅を連続的に変更することです。一般にサーボの制御パルス幅は0.5ms~2.5msの範囲で、0度~180度に相当します。コードを記述するときは、まず単純な for ループを使用してパルス幅を 0.5 ミリ秒から 2.5 ミリ秒までゆっくりと増加させ、各ステップを短期間 (15 ミリ秒など) 遅延させて、サーボが一方の端からもう一方の端までスムーズに回転するようにします。ポイントは各ステップの変化量とディレイタイムをコントロールすることです。変化が大きすぎると、サーボが次々とジャンプしてしまいます。遅延が短すぎると、サーボがスピンアップしてオーバーシュートしやすくなります。最初に基本的な関数を作成し、角度を入力し、対応するパルス幅を自動的に計算して、サーボに出力することをお勧めします。
サーボを指定位置まで回しても、必ず数度ずれてしまうので、かなり悩ましいです。位置が不正確です。一方で、ステアリングホイールが適切に固定されていない、コンロッドの位置が間違っているなどの機械的なエラーもあります。一方、ソフトウェア上のパルス幅範囲と実際の角度は校正されません。各サーボのパルス幅と角度の対応関係は若干異なり、データマニュアルを完全にコピーすることはできません。解決策は簡単です。キャリブレーション手順を実行します。まずサーボを0度と思われる位置に移動させるコードを書き、次に定規や分度器を使って実際の角度を測定し、そのときのパルス幅の値を記録します。次に、同じ方法を使用して、180 度に対応するパルス幅を測定します。この 2 つの測定値をプログラムの上限値と下限値として使用すると、制御精度が大幅に向上します。閉ループ制御アルゴリズムと組み合わせることで、効果はさらに向上します。
サーボのデバッグ中にこれまでに遭遇した最も奇妙な問題は何ですか?ドライブが焼けてしまったのでしょうか、それともプログラムをダウンロードできませんか?あなたの「ロールオーバー」体験をコメント エリアで共有したり、同じくステアリング ギアに悩まされている友人に記事を転送したりして、一緒に体験を交換することを歓迎します。
更新時間:2026-03-10