発行済み 2026-03-20
期待して基板を取り出し、モーターを接続して自信を持ってコードをアップロードしたのに、モーターがまったく動かなかったり、基板が煙を出しているだけだった、そんな経験はありませんか?心配しないでください。初心者の 90% がここでつまずきます。モーターの制御は実際にはそれほど神秘的ではありません。重要なのは、適切なドライバーを選択し、適切なワイヤを接続し、適切なコードを書くことです。では、モーターを安定して回転させる方法を説明するために、分解して潰してみましょう。
多くの人はモーターを差し込むだけで回転すると思っていますが、結果は回転しないか、ピンが焼けてしまいます。 IO ポートは最大 40mA の電流しか供給できず、小型モーターは起動時に数百ミリアンペアを必要とするためです。そのため、小さな信号を使用して大電流を制御する「電流アンプ」のようなモータードライバーボードを使用する必要があります。共通のL298NはDCモーターとステッピングモーターに適しています。 1 つのモジュールに 2 つの DC モーターまたは 1 つのステッピング モーターを搭載できます。おもちゃのモーターなどの低電力製品を開発している場合は、L293D 以降をコスト効率よく使用してください。 12V DC リダクションモーターなどの高出力製品の場合、L298N はより堅牢です。
で遊んでいる場合サーボ、状況が異なります。のサーボ独自の制御回路を備えており、5Vの電源とPWM信号を供給するだけで動作します。ただし小さいのでご注意くださいサーボ9g などは 5V から直接電力を供給できます。このような大きなトルクを使用する場合は、別途動力を供給する必要があります。そうしないと、すぐに再始動してしまいます。一種のステッピング モーターもあります。一般的なものは 28BYJ-48 で、ドライバー ボードがあれば十分です。この種の大きなものには、A4988 または A4988 を使用する必要があります。要約すると、ドライバーボードを選択するときは、まずモーターのタイプと電力を確認してください。安いものだけを探さないでください。オンラインで「[モーターモデル] ドライバーボード」を検索すると、それに応じて購入できます。
電源装置は最も転倒の危険が大きい場所です。モーターとバッテリーを同じバッテリーセットに接続している人が多すぎるのを見てきました。その結果、モーターが始動するとすぐに画面が黒くなります。なぜ?モータ始動時は通常動作時の数倍の瞬時電流が流れるため、瞬時に電圧が低下し、リセット電圧が不足します。正しいアプローチは「独立して電源を供給」し、USBまたは7-12Vアダプターを使用し、モータードライブボードとバッテリーパックを別々に接続することです。たとえば、L298N を使用して 2 つの DC モーターを駆動する場合は、7.4V リチウム電池を L298N に接続します。 L298N には 5V 出力があり、消費電力が大きくない限り電力を供給できます。
ステアリングギアを使用する場合は、さらに注意してください。ブロックされた場合に 2A の電流を引き出せる 5V の電圧調整管では、まったく処理できません。私の提案は、5V/3A 電圧安定化モジュールを購入するか、モバイルバッテリーを直接使用することです (連続出力できる必要があることに注意してください。自動スリープ機能のあるものは使用しないでください)。配線するときは鉄則を覚えておいてください。すべての GND (アース線) を一緒に接続する必要があります。そうしないと、信号がループを形成できず、モーターが回転しないか、またはランダムに回転します。 PCのGNDとドライバーボードのGND、バッテリーのマイナス端子をデュポン線で接続することで信号を接続することができます。
配線は単純そうに見えますが、実は隠された秘密があります。 L298N を例にとると、IN1 から IN4 に接続されているデジタル ピンは問題ありません。しかし、多くの人がENAとENBを接続することを忘れています。これら 2 つのイネーブル ピンがフローティングのままの場合、モーターは回転しません。正しい方法は、速度を調整できるように ENA と ENB を PWM ピン (3、5、6、9 など) に接続することです。また、モーターの配線を逆に接続した場合、モーターが逆回転しても故障ではありません。正転と逆転の場合、2 つの IO ポートのハイレベルとローレベルがプログラムによって変更されます。ワイヤーを抜き差しする必要はありません。最も隠された落とし穴は「共通点」です。前述したように、異なるアースからの信号は通過できません。
サーボを接続するときは、茶色または黒がアース線、赤が電源線、オレンジまたは黄色が信号線の3本の線に注意してください。信号線と電源線を混同しないでください。サーボを焼くのは簡単ですが、ピンを焼くのは面倒です。接続後にサーボが振動したり回らない場合は、電源不足が考えられます。別の 5V/2A 電源を接続してみてください。動作する場合は、電源に問題があります。もう 1 つの詳細事項があります。電源を入れる前に、特に金属ケースのモーターの場合、短絡がないかどうかを確認するのが最善です。ケーシングが線に触れないようにしてください。そうしないと、毎分煙が発生します。
コードを記述するときは、最初から複雑にしないでください。まずは簡単な「2秒正転、1秒停止、2秒逆転」を書いて試してみます。基本的なフレームワークは次のとおりです。セットアップでは、すべての制御ピンを HIGH に設定し、イネーブル ピンを HIGH に設定します (または初期値を使用します)。次に、ループ内で、2 つの IN ピンの High レベルと Low レベルの組み合わせによって制御方向が決定されます。例えば、IN1 HIGH と IN2 LOW が正転、逆が逆転となります。 (、速度) を使用して速度を調整します。速度範囲は 0 ~ 255 です。数値が大きいほど高速になります。最初に電源を入れたときは、速度を 0 からゆっくりと上げるのが最善です。そうしないと、モーターが突然回転し、電流が高くなりすぎます。
コードを記述する際のヒントがさらに 2 つあります。まず、(in1, LOW) などの停止関数を必ず追加してください。 (in2、低);そのため、モーターはフリー状態になり、加熱し続けることはありません。次に、コード内にあまり多くの遅延を記述しないでください。特に複数のモーターを同時に制御したい場合は、遅延によってすべてのアクションが停止してしまいます。 () タイマーをランニングライトのように使用すると、プログラムを「ノンブロッキング」で実行できます。ステアリングギアはさらにシンプルになりました#
速度と方向を制御するには、PWM と H ブリッジという 2 つのコアがあります。 PWM(パルス幅変調)というと洗練されているように聞こえますが、実際には「高速スイッチング」です。 0 ~ 255 の数値を与えると、0% ~ 100% のデューティ サイクルに対応します。 255 は常にオンを意味し、0 は常にオフを意味します。たとえば、128 に設定すると、半分の時間は電源がオンになり、半分の時間はオフになります。モーターの平均電圧は半分になり、速度も当然半分になります。 PWM は急速に変化する信号を出力できるため、イネーブル ピンを PWM ピンに接続する必要があるのはこのためです。
方向制御は H ブリッジ回路に依存します。ドライバーボード内には 4 つのスイッチがあります。 2 つの IO ポートを介して開閉を制御すると、モーターの一端からもう一端に電流が流れ、正回転が実現します。逆に。プログラム内で IN1 と IN2 を同時に HIGH に設定しないでください。これはショートに相当し、ドライバー基板が発熱したり、場合によっては焼損する可能性があります。スロースタートを実現したい場合は、for(int i=0;i などの for ループを使用できます)
ステアリングギアと通常のモーターの最大の違いは、内部に位置フィードバックシステムが組み込まれていることです。どのくらい回転するかを指示すると、その角度まで回転して維持しようと懸命に働きます。サーボは50HzのPWM信号を使用して制御されますが、周波数は固定されており、変更するのはパルス幅です。幸いなことに、Servo ライブラリはこれらすべてをカプセル化しているので、角度を記述するだけで済みます。ただし、すべてのサーボが 180 度回転できるわけではなく、90 度しか回転できないものや、連続回転できるものもあることに注意してください。購入する際はパラメータをよく読み、間違ったものを購入しないようにしてください。
サーボを使用する際には、注意しなければならない落とし穴がいくつかあります。一つ目は「緊急停止」問題です。サーボを0度から180度まで急激にジャンプさせると、一瞬で膨大な電流が消費されます。 for ループを使用して段階的に角度を変更するのが最善です。 2つ目はリセットされます。電源を入れると、サーボは自動的に最後に記憶された位置に移動します。その位置が極端な角度にあると、ギアがカチッという音を立てる可能性があります。したがって、最初に 90 度などの設定を書き込んでから、他のアクションを実行することをお勧めします。 3つ目はマルチサーバー制御です。 3 つ以上の 9g サーボを同時に制御する場合は、サーボから電力を供給せず、外部電源モジュールを使用してください。そうしないと、ランダムに再起動します。
ここまで言っても、モーター制御を「ドライバーを選ぶ、配線する、プログラムを書く」の3つの部分に分割するのはたったの1文だけです。各部のひっくり返りやすいディテールに注目すると、すぐにさまざまなモーターで遊べるようになるでしょう。最後に、あなたに聞きたいのですが、初めて制御モーターを使用したときに遭遇した最もとんでもない横転状況は何ですか?誰もが落とし穴を回避できるように、コメント エリアでチャットしましょう。
更新時間:2026-03-20