2. コードでの移動

前のプロジェクトでは、L298Nの入力の異なるレベルの信号を使用してモーターの操作を制御しました。

プログラムを通じてレベル信号を変更することで、車の動きを柔軟に制御することができます。 ここでは、L298NのIN1〜IN4ピンをR3ボードの5、6、9、10ピンに順に接続します。

必要な部品

このプロジェクトには以下の部品が必要です。

キット全体を購入すると非常に便利です。リンクは以下のとおりです:

名前

このキットのアイテム

リンク

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

以下のリンクからそれぞれ個別に購入することもできます。

コンポーネントの紹介

購入リンク

SunFounder R3ボード

BUY

L298N モジュール

BUY

TTモーター

-

配線図

L298Nモータードライバモジュールは、DCモーターとステッピングモーターを駆動するための高出力モータードライバモジュールです。L298Nモジュールは、最大で4台のDCモーター、または方向と速度の制御が可能な2台のDCモーターを制御することができます。

以下の図に従って、L298NモジュールとR3ボードの間にワイヤーを接続してください。

L298N

R3ボード

モーター

IN1

5

IN2

6

IN3

9

IN4

10

OUT1

右モーターの黒ワイヤー

OUT2

右モーターの赤ワイヤー

OUT3

左モーターの黒ワイヤー

OUT4

左モーターの赤ワイヤー

../_images/car_motor1.jpg

コード

注釈

  • 3in1-kit\car_project\2.move のパスの下の 2.move.ino ファイルを開きます。

  • または、このコードを Arduino IDE にコピーしてください。

  • または、 Arduino Web Editor を通じてコードをアップロードします。

コードをアップロードすると、車はそれぞれ2秒間で前進、後退、左右に移動します。

どのように動作するのか?

このプロジェクトは基本的に前回のものと同じで、IN1からIN4までの異なるレベルを与えることで車を前進、後退、左右に動かし、停止させるものです。

  1. IN1~IN4のピン配線を初期化する。

    const int in1 = 5;
    const int in2 = 6;
    const int in3 = 9;
    const int in4 = 10;
    
    void setup() {
        pinMode(in1, OUTPUT);
        pinMode(in2, OUTPUT);
        pinMode(in3, OUTPUT);
        pinMode(in4, OUTPUT);
    }
    
  2. 左右のモーターの回転を制御するためにIN1~IN4を異なるハイまたはローレベルに設定し、それらを個別の関数にカプセル化する。

    void moveForward() {
        digitalWrite(in1, LOW);
        digitalWrite(in2, HIGH);
        digitalWrite(in3, HIGH);
        digitalWrite(in4, LOW);
    }
    
    void moveBackward() {
        digitalWrite(in1, HIGH);
        digitalWrite(in2, LOW);
        digitalWrite(in3, LOW);
        digitalWrite(in4, HIGH);
    }
    ...
    
  3. loop() でこれらの関数を呼び出す。

    void loop() {
        moveForward();
        delay(2000);
        stopMove();
        delay(500);
    
        moveBackward();
        delay(2000);
        stopMove();
        delay(500);
    ...
    
  • digitalWrite(pin, value)

    • pin: Arduinoのピン番号。

    • value: HIGHまたはLOW。

    デジタルピンにHIGHまたはLOWの値を書き込む。ピンが pinMode()OUTPUT として設定されていれば、その電圧は対応する値に設定されます:HIGHの場合は5V(または3.3Vボードで3.3V)、LOWの場合は0V(グラウンド)。

  • pinMode(pin, mode)

    • pin: モードを設定するArduinoのピン番号。

    • mode: INPUT、OUTPUT、またはINPUT_PULLUP。

    指定されたピンを入力または出力として動作するように設定します。

  • delay(ms)

    • ms: 一時停止するミリ秒数。許可されるデータタイプ: unsigned long。

    パラメータとして指定された時間(ミリ秒)の間、プログラムを一時停止します。(1秒には1000ミリ秒があります。)