前のプロジェクトでは、L298Nの入力の異なるレベルの信号を使用してモーターの操作を制御しました。
プログラムを通じてレベル信号を変更することで、車の動きを柔軟に制御することができます。 ここでは、L298NのIN1〜IN4ピンをR3ボードの5、6、9、10ピンに順に接続します。
必要な部品
このプロジェクトには以下の部品が必要です。
キット全体を購入すると非常に便利です。リンクは以下のとおりです:
名前 | このキットのアイテム | リンク |
---|---|---|
3 in 1 Starter Kit | 380+ |
以下のリンクからそれぞれ個別に購入することもできます。
コンポーネントの紹介 | 購入リンク |
---|---|
cpn_uno |
|
cpn_l298n |
|
cpn_tt_motor |
- |
配線図
L298Nモータードライバモジュールは、DCモーターとステッピングモーターを駆動するための高出力モータードライバモジュールです。L298Nモジュールは、最大で4台のDCモーター、または方向と速度の制御が可能な2台のDCモーターを制御することができます。
以下の図に従って、L298NモジュールとR3ボードの間にワイヤーを接続してください。
L298N | R3ボード | モーター |
---|---|---|
IN1 | 5 | |
IN2 | 6 | |
IN3 | 9 | |
IN4 | 10 | |
OUT1 | 右モーターの黒ワイヤー | |
OUT2 | 右モーターの赤ワイヤー | |
OUT3 | 左モーターの黒ワイヤー | |
OUT4 | 左モーターの赤ワイヤー |
コード
Note
3in1-kit\car_project\2.move
のパスの下の2.move.ino
ファイルを開きます。- または、このコードを Arduino IDE にコピーしてください。
- または、 Arduino Web Editor を通じてコードをアップロードします。
コードをアップロードすると、車はそれぞれ2秒間で前進、後退、左右に移動します。
どのように動作するのか?
このプロジェクトは基本的に前回のものと同じで、IN1からIN4までの異なるレベルを与えることで車を前進、後退、左右に動かし、停止させるものです。
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); }
左右のモーターの回転を制御するために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); } ...
loop()
でこれらの関数を呼び出す。void loop() { moveForward(); delay(2000); stopMove(); delay(500); moveBackward(); delay(2000); stopMove(); delay(500); ...
-
pin
: Arduinoのピン番号。value
: HIGHまたはLOW。
デジタルピンにHIGHまたはLOWの値を書き込む。ピンが
pinMode()
でOUTPUT
として設定されていれば、その電圧は対応する値に設定されます:HIGHの場合は5V(または3.3Vボードで3.3V)、LOWの場合は0V(グラウンド)。 -
pin
: モードを設定するArduinoのピン番号。mode
: INPUT、OUTPUT、またはINPUT_PULLUP。
指定されたピンを入力または出力として動作するように設定します。
-
ms
: 一時停止するミリ秒数。許可されるデータタイプ: unsigned long。
パラメータとして指定された時間(ミリ秒)の間、プログラムを一時停止します。(1秒には1000ミリ秒があります。)