Controlling DC Moto...
Clear all

Controlling DC Motors with the L298N H Bridge and Arduino

3 Posts
3 Users
0 Reactions
Workshop Guru Admin
Joined: 5 years ago
Posts: 1094
Topic starter  

In this video, I'll show you how to use the L298N H-Bridge Motor Controller with an Arduino. Includes plans for a simple robot car.

Get more info about using the L298N at

The L298N Dual H-Bridge Motor Controller is an inexpensive device that allows you to control two independent DC motors using 5-volt digital logic signals, such as the digital output pins of an Arduino. The L298N can also be used to control a single stepper motor or two sets of LED lighting strips.

In this tutorial, we'll learn how to control two 6-volt DC motors with the L298N.

First, we will enlighten ourselves by learning a quick bit of the history of DC motors and discovering how they actually work. We will also learn what an “H-Bridge” is, how it works, and how we can control the direction of rotation of a DC motor with it.

We will then quickly discuss the concept of Pulse Width Modulation, or PWM, as it is used to control the speed of DC motors. Don’t worry, it’s a lot easier than it sounds!

Then we will look at how the L288N H-Bridge module actually works, how to hook it up to a couple of motors, and how to power it correctly.

Next, we will connect the L298N Dual H-Bridge Motor Controller to an Arduino. Once that's done we’ll run a motor demo sketch to put the device through its paces.

After the demo, we will expand upon our sketch to allow a couple of potentiometers (connected to the Arduino’s analog inputs) to control the speed of each motor.

And now that we’ve become experts we will replace the potentiometers with a joystick and use it to control the motors. Just for fun, we’ll use this setup to build an Arduino-driven car!

The L298N Dual H-Bridge Motor Controller is a very versatile device that is sure to find a lot of use in your robotics and IoT projects. Anywhere you want to make things move with an Arduino!

This is a long video, so if you’d like to jump ahead to a specific spot here is the table of contents:

00:00 - Introduction
01:25 - What is a DC Motor & Where is it used?
03:01 - How does a DC Motor work?
04:17 - What is an H-Bridge?
05:25 - Popular L298N Interface boards
06:49 - L298N Module Pinouts and hookup
09:04 - Understanding PWM (Pulse Width Modulation)
09:58 - Testing the L298N without a controller
13:28 - Arduino Hookup to L289N
14:53 - Sketch 1 - Motor Control Demo
19:29 - Motor Control Demo
20:38 - Potentiometer Hookup to Arduino and L298N Module
21:38 - Sketch 2 - Two Potentiometer Control Demo
25:08 - Two Potentiometer Control Demo
25:43 - Joystick and Arduino Hookup
27:52 - Sketch 3 - Joystick Control Demo
34:22 - Driving our car!


"Never trust a computer you can’t throw out a window." — Steve Wozniak

Joined: 4 years ago
Posts: 17

Just a curiosity:

I did almost the same connections in the video (the first example, the one without arduino) but instead of using 5V for the control pins (EN1, E1, E2..) I plugged them directly to the 7.4V rail.
Why the motors didn't move ?
Of course, once I plugged them in the 5V everything just worked fine!

In my mind 7.4V means "HIGH".



Joined: 3 years ago
Posts: 1

Awesome video. I am using a different micro controller. It is the Dual H-Bridge v1.3. I do not see the EN1, EN2 control pins, ETC. How does that change the coding from your video? Is there another way that I can change the speed without the control pins?