Navigation - L298N Quick Reference Guide:
IN1 and IN2 = Right Motors
IN3 and IN4 = Left Motors
ENA and ENB = controls the speed of the right and
left motors via PWM.
ENA or ENB
|
IN1 or IN3
|
IN2 or IN4
|
Motor Action
|
0
|
X
|
X
|
Stop
|
1
|
0
|
0
|
Brake
|
1
|
0
|
1
|
Forward
|
1
|
1
|
0
|
Backward
|
1
|
1
|
1
|
Brake
|
Connection on the Arduino:
Pin
Connection
L298N
|
Arduino Microcontroller
|
ENA
|
10 (~PWM)
|
ENB
|
5(~PWM)
|
IN1
|
9
|
IN2
|
8
|
IN3
|
7
|
IN4
|
6
|
Car
Movement Directions vs. Wheels Rotation
Car Moves Forward
|
Car Moves Backward
|
Car Stops
|
Car Turns Left
|
Car Turns Right
|
|
Left Wheels\Motors
|
Forward
|
Back
|
Stop
|
Back
|
Forward
|
Right Wheels\Motors
|
Forward
|
Back
|
Stop
|
Forward
|
Back
|
(Picture courtesy of ArcBotics)
Sample Code:
Here is a code I wrote to make the care move forward:
/*
Amr - 11/14/2017
Basic Navigation
Car Moves Forward
*/
// defining the pins connected between the L298N Dual H-Bridge and Arduino Microcontroller
//pins that will control speed of motors, enable PWM
int ENA = 10;
int ENB = 5;
//right motors
int IN1 = 9;
int IN2 = 8;
//left motors
int IN3 = 7;
int IN4 = 6;
void setup() {
// put your setup code here, to run once:
//define the mode of the pins, are they pins sending data to outside peripherals? or recieving data? .....
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
/*
To move the car forward, both left motors and right motors must be rotating forward.
So that means:
Right Motor - ENA = 1; IN1 = 0; IN2 = 1
Left Motor - ENB = 1; IN3 = 0; IN4 = 1
We write the code for that in void loop() below
*/
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(ENA, HIGH);
digitalWrite(ENB, HIGH);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}