How to Use the L298 Motor Driver Module - Arduino Tutorial

About: Arduino Tutorials by Codebender.cc Team

This dual bidirectional motor driver is based on the very popular L298 Dual H-Bridge Motor Driver IC. This module will allow you to easily and independently control two motors of up to 2A each in both directions.

It is ideal for robotic applications and well suited for connection to a microcontroller requiring just a couple of control lines per motor.

In this tutorial you will learn how to use it with Arduino uno to control two dc motors.

Step 1: What You Will Need

For this project you will need:

  • Arduino uno
  • Breadboard
  • L298 Module
  • 2x DC motors

Step 2: The Circuit

The connections are pretty easy!

  • Module 5V (or Vcc) - Arduino 5V pin
  • Module GND - Arduino GND pin
  • Module 12V (or Vbat) - To external power source up to 35V.
    For this tutorial just connect it with Arduino Vin pin.
  • Module output 1 & 2 - Connect dc motor A
  • Module output 3 & 4 - Connect dc motor B
  • Module IN1 - Arduino pin 5
  • Module IN2 - Arduino pin 6
  • Module IN3 - Arduino pin 10
  • Module IN4 - Arduino pin 9

Step 3: The Code

Here's the code, embedded using codebender!

Try downloading the codebender plugin and clicking on the Run on Arduino button to program your Arduino with this sketch. And that's it, you've programmed your Arduino board!

You can keep playing with that by clicking the "Edit" button and start making your own modifications to the code. For example try to combine parts of code to move both motors simultaneously.
Try to use analogWrite(pin, PWM value) instead digitalWrite(pin, HIGH/LOW) to control the speed of motors!

Step 4: Well Done!

You have successfully completed one more Arduino "How to" tutorial and you learned how to use the L298 motor driver IC module to control two dc motors with the Arduino uno board.

I hope you liked this, let me know in the comments.

There will be more of them, so make sure to click Follow button!

Share

Recommendations

  • First Time Author

    First Time Author
  • PCB Contest

    PCB Contest
  • Toys Contest

    Toys Contest

13 Discussions

0
None
safa mariyam

27 days ago

is it possible to connect a servo motor and dc motor to L298 module?

0
None
tetos

9 months ago

hello.
can i use the L 298 to drive 220 V DC motor ?
i read the data sheet,and found that the maximum voltage it can operate on is 42 V
what are the recommendations for me to do .
thanks for helping me .

0
None
AdalbertR

11 months ago

Hi. I have a simple question. Why should we use this circuit with L298, instead of using the L298 only? Thanks.

0
None
matelot2

11 months ago

How are your driver pins numbered?

this is the only numbered picture I can find. The numbers don't correspond to yours?

l293 driver.jpg
0
None
VishanAamchiavelli

Reply 12 months ago

when you use 5V of arduino the motor runs slow if you use 12v it will run fast

0
None
chameeracjwamchiavelli

Reply 1 year ago

check whether the bridge is connected correctly. there is a bridge that decides which voltage give to your motor. If you connect it with 5V motors will have only 5V though you want to supply 12V. change the bridge and try!

0
None
AdrianP70

2 years ago

Can anyone help me out.I bought a l298n shield identical with the one in this tutorial, but mine isn't working at all.I've tried with arduino uno 5v, arduino mini 3.3v ,nodemcu esp8266 3.3v ,even straight from power supply (gnd and 9v) ,out1 and out2 with 9v motor conected and ENA(HIGH 5V) ,IN1(HIGH 5V),IN2(LOW GND) ,and still no power to motor (0,0v).Any ideas?

3 replies
0
None
Maximus39AdrianP70

Reply 1 year ago

Im having the same problem can anyone help

0
None
SiddarthNMaximus39

Reply 1 year ago

Ensure that the ENA and ENB jumpers are in place and you ave to use an external 12 V supply to the module.

0
None
SiddarthNSiddarthN

Reply 1 year ago

When you supply 12v make sure that the USB is unplugged from your computer or else it may damage your motherboard.

0
None
amchiavelli

1 year ago

It only work with the 12 volts power supply...