発行済み 2026-04-08
もしあなたのサーボArduino に接続されているモーターが突然回転を停止したり、まったく動かなくなったりした場合、エレクトロニクス プロジェクトで最も一般的な問題の 1 つに直面しています。このガイドでは、実際のシナリオに基づいた段階的な診断と修復のプロセスを説明します。以下の構造化されたチェックに従うことで、正確な原因を特定し、正常な状態に戻します。サーボ数分以内に操作が完了します。
報告された症例の 70% 以上で、サーボ十分な電流が供給されないため、回転が停止します。
重要な事実:一般的な小型サーボ (SG90 など) は、アイドル時に 200 ~ 500 mA、回転開始時に最大 1.5 ~ 2 A を消費します。 Arduino ボードの 5V ピンは、合計約 400 ~ 500 mA しか安全に供給できません。 Arduino の 5V ピンから直接サーボに電力を供給すると、電圧が低下し、サーボがストールまたは停止し、Arduino がリセットされる可能性があります。
検証済みの解決策:
少なくとも 2A 定格の別の外部 5V DC 電源を使用してください。
サーボの赤いワイヤ (VCC) を外部電源のプラス端子に接続します。
サーボの茶色/黒色ワイヤ (GND) を外部電源のマイナス端子の両方に接続します。そしてArduinoのGND(共通グランド)。
サーボのオレンジ/黄色の信号線を Arduino PWM ピン (ピン 9 など) に接続したままにしてください。
事例:趣味の人は 3 つのサーボを備えたロボット アームを作りました。 2 秒間の操作後にすべてのサーボが停止しました。原因は、Arduino の 5V ピンからすべてのサーボに電力を供給していました。 5V/5A の外部電源に移行すると、すべてのサーボが正しく回転しました。
信号線が外れたり、配置が間違っていると、回転が起こりません。上級ユーザーでも信号線と電源線を交換することがあります。
段階的な検証:
1. 信号線 (通常はオレンジ、黄色、または白) → デジタル PWM 対応ピン (例: Arduino Uno の 3、5、6、9、10、11) に接続します。
2. 電源線 (赤) → 外部 5V 電源 (または無負荷で 1 つの小型サーボをテストする場合のみ Arduino 5V)。
3. アース線(茶色または黒色)→Arduinoとの共通アース。
最小限のスケッチでテストします。標準のスイープサンプルをアップロードし(ファイル→サンプル→サーボ→スイープ)、サーボの動作を確認します。そうであれば、配線は正しいです。
servo.attach()または間違ったピン電話をかけるのを忘れるユーザーが多いアタッチ()で設定()、または PWM をサポートしていないピンを使用しています。それなしアタッチ()の場合、サーボは制御信号を受信せず、静止したままになります。
正しい最小限のコード構造:
#含むサーボmyServo; void setup() { myServo.attach(9); // 実際の信号ピンと一致する必要があります } void loop() { myServo.write(0); // 0 度 – 左端の位置の遅延(1000); myServo.write(90); // 90 度 – 中心遅延(1000); myServo.write(180); // 180 度 – 右端の位置遅延(1000); }
よくある間違い:使用するアナログ書き込み()またはデジタル書き込み()サーボピン上 – これらは必要な 50Hz PWM 信号を生成しません。サーボ ライブラリまたは直接パルス幅変調のみが機能します。
サーボがブーンと音を立てて回転しない場合は、内部のギアが剥がれているか、外部の物体がホーンを塞いでいる可能性があります。
診断手順:
サーボホーン(プラスチックアーム)を取り外します。次に、テストコードを実行します。ホーンなしでサーボが自由に回転する場合、問題は機械的な拘束 (負荷が重すぎるか、詰まっている) です。
ホーンを外してもサーボが回転しない場合は、内部のギアが破損している可能性があります。サーボ ギア (特にプラスチック製) は、突然の力が加わったり、ホーンが急停止したりすると剥がれます。
事例:ロボット アームがテーブルの端に衝突した後、ユーザーのサーボの回転が停止しました。ホーンを取り外すと、サーボシャフトが自由に回転していることが判明しましたが、内部のギアトレインは粉砕されていました。サーボを交換する(または金属ギアにアップグレードする)ことで問題は解決しました。
ハードウェア障害はそれほど一般的ではありませんが、発生する可能性はあります。体系的にテストします。
1. 別のピンでサーボをテストする(例: ピン 9 からピン 10 に移動し、コードを更新します)。動作する場合は、元のピンが損傷しています。
2. 正常なサーボをテストする同じピンとコード上にあります。正常なサーボが回転する場合は、元のサーボに欠陥があります。
3. 簡易サーボテスターでサーボをテストする(専用デバイスまたは外部 50Hz 信号発生器)。テスターで見ても回らない場合はサーボ内部の制御基板が故障しています。
Arduino Servo ライブラリはハードウェア タイマーを使用します。 Arduino Uno では無効になりますアナログ書き込み()Arduino Mega では、異なるタイマーが異なるピンに影響します。コードで複数のライブラリを使用する場合 (例:サーボそしてソフトウェアシリアルまたはIRリモート)、サーボ信号が競合して停止する可能性があります。
解決:
サーボ ライブラリ インスタンスは 1 つだけ使用します。
使用する必要がある場合は、ソフトウェアシリアル、シリアル通信後にサーボを初期化します。
Arduino Mega を使用してタイマーを分離することを検討するか、サーボ図書館のデタッチ()そしてアタッチ()ダイナミックに。
Arduino の電源が投入されると、サーボはランダムな信号を受信します。アタッチ()と呼ばれます。サーボがすぐに動作するようにプログラムされている場合、破損した初期信号を受信してロックアップする可能性があります。
修理:最初の遅延の前に 1 ~ 2 秒の遅延を追加します。サーボ.ライト()指示。
void setup() { myServo.attach(9);遅延(2000); // 電力を安定させて myServo.write(90); }
ほとんどのサーボは電力不足により停止します– 常に共通グランドを備えた外部 5V 電源を使用してください。
2 番目に多い: 欠落servo.attach()– このラインが存在し、有効な PWM ピンを使用していることを確認します。
3 番目: 機械的な結合または剥がれたギア– ホーンを取り外して自由な回転をテストします。
4 番目: コードの競合とタイマーの問題– スケッチを最小限に簡素化します。
Arduino サーボが回転しない問題を直ちに解決するには、次の順序に従ってください。
1. サーボの赤いワイヤーをArduinoから外します。別の 5V/2A 電源に接続します。電源のグランドをArduino GNDに接続します。
2. スイープのサンプルをアップロードする他のコードなしで。
3. サーボホーンを取り外しますそして、スイープの例を再度実行します。
4. それでも回転しない場合、サーボを動作確認済みのユニットと交換します。
これら 4 つの手順で、「サーボの回転が停止した」すべてのケースの 95% が解決されます。予備のサーボと専用の電源を常に作業スペースに保管してください。変更を加える前に配線とコードを文書化し、各ハードウェア コンポーネントを個別にテストして障害を切り分けます。
更新時間:2026-04-08