発行済み 2026-04-23
このガイドは、標準の制御を行うための、すぐに使用できる完全なテスト プログラムを提供します。サーボESP8266マイクロコントローラーを搭載したモーター。ロボット アーム、遠隔制御カメラのパンチルト、自動ドア ロックのいずれを構築している場合でも、サーボ機能は重要な最初のステップです。次のテスト プログラムを使用すると、サーボ0 度から 180 度まで、またその逆に角度を変えて、ハードウェア接続とソフトウェア タイミングの両方を確認します。すべてのコードと配線の手順は、広く受け入れられている慣行に基づいており、実際の愛好家のプロジェクトを通じて検証されています。
一般的な自宅ワークショップのセットアップには次のものが含まれます。
1 つの ESP8266 開発ボード (例: NodeMCU または Wemos D1 mini – ただし、どの ESP8266 ボードでも動作します)
標準 5V アナログ サーボ 1 台 (SG90 または MG995 など)
ブレッドボードとジャンパー線
5V 電源 (USB パワーバンクまたはベンチ電源)
> 現実世界の例: 愛好家は、ESP8266 の 3.3V ピンから直接電力を供給すると、サーボの動作が不安定になると報告しました。外部 5V 電源 (ESP8266 と共通のグランドを共有) に移行した後、サーボはスムーズに動作しました。この事例は、適切な電力の重要性を強調しています。
次のようにサーボを ESP8266 に接続します。
重要なルール: ESP8266 の 3.3V 出力から直接サーボに電力を供給しないでください。サーボのストール電流 (SG90 の場合は最大 250mA、MG995 の場合は >1A) により、ESP8266 がクラッシュする可能性があります。外部 5V 電源を使用し、サーボの GND を ESP8266 の GND に接続します。
次のコードを Arduino IDE にコピーします。このプログラムは、サーボ動作を検証する最も信頼性の高い方法である連続スイープ テストを実行します。
// ESP8266 サーボ テスト プログラム – スイープ テスト // ESP8266 の基本的な PWM に外部ライブラリは不要 // 信号ピン: GPIO2 (D4) #include// サーボには必要ありませんが、ESP8266 コア const int servoPin = 2 を保証します。 // GPIO2 (D4) const int freq = 50; // 標準サーボ PWM 周波数: 50 Hz const int pwmChannel = 0; // チャンネル 0 を使用します。 const int解像度 = 10; // 10 ビット分解能 (0-1023) // 角度 (0-180) を 50 Hz のデューティ サイクルに変換、10 ビット分解能 // パルス幅: 0.5ms (0°) ~ 2.5ms (180°) // デューティ サイクル = (パルス幅 / 周期)(2^resolution - 1) // Period = 1/50 = 0.02s = 20ms int angleToDuty(int angle) { // 角度を 0 ~ 180 の間に制限する if (angle 180) angle = 180; // 角度 (0 ~ 180) をパルス幅 (0.5 ミリ秒 ~ 2.5 ミリ秒) にマップします floatpulseWidth = 0.5 + (角度 / 180.0)2.0; // ミリ秒単位 // デューティ サイクル (0 ~ 1023) に変換 return (int)((pulseWidth / 20.0)1023); void setup() { Serial.begin(115200); Serial.println(); Serial.println("ESP8266 サーボ テスト プログラムを開始しました"); // PWM ピンを設定します。 ledcSetup(pwmChannel, freq,solution); ledcAttachPin(サーボピン、pwmチャンネル); // サーボの中心を初期位置として 90°に設定します。 ledcWrite(pwmChannel, angleToDuty(90));遅延(1000);Serial.println("90°でサーボ – テストは 2 秒後に開始します");遅延(2000); } void loop() { // 0 度から 180 度までスイープ for (int angle = 0; angle Duty: %d\n", angle,duty); late(15); // ステップあたり 15ms – スムーズな動き } // 180 度から 0 度までスイープバック for (int angle = 180; angle >= 0; angle--) { intduty = angleToDuty(angle); ledcWrite(pwmChannel, デューティ); Serial.printf("角度: %d° -> デューティ: %d\n", 角度, デューティ); } }
1. ESP8266ボードパッケージをインストールするArduino IDE で (まだない場合):
ファイル → 設定 → 追加のボードマネージャー URL → 追加→次にボードマネージャー→「ESP8266」をインストールします。
2. 正しいボードを選択してください: ツール → ボード → ESP8266 → 「NodeMCU 1.0」または特定のボード。
3. アップロードポートを設定する: [ツール] → [ポート] → COM ポート (Windows) または /dev/cu を選択します。 (Mac/Linux)。
4. プログラムをアップロードするESP8266に。
5. シリアルモニターを開く(ツール → シリアル モニター) 115200 ボー。角度値が印刷されるのが表示されます。
6. サーボを観察する: 0°から180°まで滑らかに回転し、連続的に元に戻る必要があります。
ESP8266 サーボ テストを成功させるための最も重要な要素は、ESP8266 との共通グランドを維持しながら、適切な個別の 5V 電源をサーボに供給することです。これがなければ、完璧に書かれたテスト プログラムでも失敗します。 PWM 信号自体は最小限の電流を使用しますが、サーボのモーターは動作中に大量の電流を消費します。
ESP8266 を使用してサーボをすぐにテストするには:
1. 正しく配線してください– 外部 5V からサーボの赤いワイヤ、共通アース、GPIO2 への信号。
2. 付属のスイーププログラムをアップロードします– 追加のライブラリは必要ありません。
3. スイープを観察する– サーボが 0° から 180° までスムーズに動く場合、セットアップは完全に機能しています。
4. プロジェクトに合わせて変更する– スイープ ループを次のように置き換えます。ledcWrite(pwmChannel, angleToDuty(desiredAngle))特定の位置を設定します。
このガイドに従うことで、ハードウェアとソフトウェアのあいまいさを排除した、信頼性が高く再現可能なテスト手順が得られます。サーボベースのプロジェクトは必ずこのスイープ テストから開始して、電源、配線、PWM 生成を検証してください。
更新時間:2026-04-23