Two enabled inputs are provided to enable or disable the device independently of the input signals. The emitters of the lower transistors of each bridge are connected together and the corresponding external terminal can be use for the connection of external sensing resistor. Additional supply input is provided so that the logic works at lower voltage.
This module has ease to connect and drive a dc motor or stepper motor allows you to easily and intently control two motor up to 2A each in both direction or one stepper motor.
It is excellent for robotics applications and well fit to a microcontroller. It can also be interfaced with simple manual switches, TTL Logic gates and relays. etc
Specification
- Motor supply: 7 to 24 VDC
- Control Logic: Standard TTL Logic Level
- Output Power: Up to 2 A each
- Enable and Direction Control Pins
- Heat-Sink
- Power-On LED indicator
- 4 Direction LED indicators
There are many model of l298n boards in the market, see the photo below for examples. If you want to build your own, see the schematic diagram below.
L298n Schematic Diagram
How to control 1, 2, or 4 DC Motors
Wiring and controlling a DC motor is quite easy, you just need to connect each motor to A1-A2, B3-B4 or Out 1-2, Out 3-4 It depends how the L298n board configuration. If your using two motors for a robot you need to ensure that the polarity of the motors is the same on both outputs, otherwise you need to swap them when you set the motors to forward and backward. We need to connect 6 digital output pins on your Arduino. 2 of the pins you need to used PWM(Pulse with Modulation) pins. PWM pins are denoted by symbol (~) next to the pin Number.
Connect the Arduino Digital Pins to the L298n Module see our example diagram below, in the diagram we have 4 and 2 DC motors so digital pins D9 D8, D7 and D6 will be connected to IN1, IN2, IN3, and IN4. Then connect Digital 10 to module pin PWM 1 you need to remove the jumper fist plug Digital 5 to module PWM 2. The motor direction is controlled by sending a HIGH or LOW signal to the driver on each channel.
for example Motor A1 and A2 a HIGH to IN1 and LOW to IN2 will cause it to turn in one direction and LOW and HIGH will cause it to turn in other direction. Controlling the Speed of the motor you need to used the PWM(Pulse with Modulation) signal from the digital pin connected to the Arduino enabled pin can. Below are the sample sketch to test and drive the motors with PWM (Pulse with Modulation).
Hardware Details
Screw terminal pin assignments | |||
Pin | Color | Name | Description |
1 | Green | Motor A – | Output to Motor A (-) |
2 | Green | Motor A+ | Output to Motor A (+) |
3 | Blue | VMS | Input 4-35V motor power supply (+) |
4 | Blue | GND | Ground (-) |
5 | Blue | 5V | 5V regulated power (+) |
6 | Green | Motor B – | Output to Motor B (-) |
7 | Green | Motor B+ | Output to Motor B (+) |
Note that the 5V regulated power on pin 5 above is an output when the 5V_EN jumper is in place. Otherwise you must input 5V regulated power at pin 5 so that the circuit can operate properly. Do not enable the onboard 5V regulator if you are supplying more than 16V to motors on pin 3 or the regulator will burn out.
Header pin assignments | ||
Pin | Name | Description |
1 | ENA | Input to enable Motor A |
2 | IN1 | Input to control Motor A |
3 | IN1 | Input to control Motor A |
4 | ENA | Input to enable Motor B |
5 | IN1 | Input to control Motor B |
6 | IN2 | Input to control Motor B |
Jumpers | |
Name | Description |
5V_EN | Enable the onboard 5V regulator |
U1 | Enable Motor A input pin IN2 pull-up resistor (10K) |
U2 | Enable Motor A input pin IN2 pull-up resistor (10K) |
U3 | Enable Motor B input pin IN3 pull-up resistor (10K) |
U4 | Enable Motor B input pin IN4 pull-up resistor (10K) |
CSA | Ties the Motor A current sense to ground |
CSB | Ties the Motor B current sense to ground |
Note: The CSA and CSB current sense feature is disabled when the jumpers are present. To use the current sense feature, remove the jumpers and attach to the header pins. Leave the jumper connected when not using current sense.
Software
Speed control
The speed of the motors can be adjusted by connecting PWM outputs from your robot’s microcontroller to the ENA and ENB input pins on the motor driver board. The ENA pin controls Motor A and the ENB pin controls Motor B. When these pins are HIGH, power is output to the motor. By using PWM, you are turning power on and off very quickly to adjust the speed of the motor. The longer the PWM duty cycle is, the faster the motor will turn. We recommend always using a PWM duty cycle of 90% or less.
Direction control
The direction that the motors turn is controlled using the IN1, IN2, IN3 and IN4 input pins on the motor driver board. Connect these pins to digital outputs on your robots microcontroller. To make Motor A go forward, set IN1=HIGH and IN2=LOW. To make Motor A go backward set IN1=LOW and IN2=HIGH. The same method is used to control Motor B: set IN3=HIGH and IN4=LOW to o forward and set IN3=LOW and IN4=HIGH to go backwards. Note that “forward” and “backwards” refer to the direction of the motors themselves. If your robot does not move in the expected direction, reverse the motor polarity by swapping the green screw terminals for Motor A + and – and/or Motor B + and -.
Stopping
To remove power from the motors, simply set ENA=LOW for Motor A and ENB=LOW for Motor B. This will result in the motors stopping slowly and naturally from friction. To perform a quick braking operation, set ENA=LOW, IN1=LOW and IN2=LOW for Motor A and ENB=LOW, IN3=LOW and IN4=LOW for Motor B. The motors will come to an instant stop. Here are some handy tables to show the various modes of operation.
Motor Driver Truth Tables
Here are some handy tables to show the various modes of operation.
Motor A truth table | |||
ENA | IN1 | IN2 | Description |
0 | N/A | N/A | Motor A is off |
1 | 0 | 0 | Motor A is stopped (brakes) |
1 | 0 | 1 | Motor A is on and turning backwards |
1 | 1 | 0 | Motor A is on and turning forwards |
1 | 1 | 1 | Motor A is stopped (brakes) |
Motor B truth table | |||
ENB | IN3 | IN4 | Description |
0 | N/A | N/A | Motor B is off |
1 | 0 | 0 | Motor B is stopped (brakes) |
1 | 0 | 1 | Motor B is on and turning backwards |
1 | 1 | 0 | Motor B is on and turning forwards |
1 | 1 | 1 | Motor B is stopped (brakes) |
Diagram for Connecting 4 Motor on L298n with Arduino
Diagram for Connecting 2 Motor on L298n with Arduino
Motor Simulation Sketch Code
[crayon-67418cd24a899732635345/]
Download The L298n Datasheet Here | PDF