• Voltage, Current, Resistance and Ohm’s Law — When we dive into
the L298, it’ll be good to know the basics of voltage and current.
Meet the L298
At the heart of the Ardumoto — the big, black chip right in the middle — is
an L298, one of our favorite dual-channel motor drivers around. On this
page, we’ll give you some background information on the chip we’ll be
depending on to drive our motors.
But First…Why a Motor Driver?
DC motors are the easiest motors to use. They’re dumb (they don’t provide
feedback), but they’re good at spinning in one direction or the other when
we tell them to. Unlike servos or steppers, DC motors don’t require any
special signals — just a straight DC voltage. So why can’t we just connect
them directly to the Arduino?
Well, motors tend to
draw a lot of current
, and trying to drive a motor
straight from your Arduino output pins will make your Arduino quite cross
with you. Wiring an Arduino straight to the motors will damage the
microcontroller’s I/O pins due to the absolute maximum ratings. The
Ardumoto lets you control a whole bunch of current (good for motors) safely
with an itty-bitty signal (good for Arduinos). Everyone’s happy!
Here are some of the important features and specifications of the L298.
These extend out to be the specifications of the Ardumoto as well:
Two Channels @ 2A Each
The L298 is a two-channel motor driver. That means it can individually
drive up to two motors
. So it’s perfect for a two-wheel-drive vehicle. But if
you have a special four-wheel-drive platform, you might need something
else (or just two L298s).
Each channel on the L298 can deliver
up to 2A
to the motor to which it’s
connected. Keep in mind, though, that the amount of current available to
your motor also depends on your system’s power source.
Batteries
are
great power sources because they’re mobile and can discharge a lot of
current. However, high current draw also means they’ll drain faster.
The Control Signals
Controlling the L298 is very easy. If you’ve ever blinked or dimmed an LED,
you already have all the tools necessary to control the L298.
• All of the control signals are limited to a maximum of 7V, which is
great because our Arduino is only going to supply a maximum of 5V.
• For each of the L298’s channels, there are two types of input we
need to send to drive a motor: direction and enable. Each of these
inputs are Boolean — either high or low.
• Using the
direction
inputs, we can control whether the motor spins
clockwise or counterclockwise. The L298 actually has two direction
inputs for each channel. However, we’ve merged those two inputs
into one on the Ardumoto, as we’ll show in the next section.
• The
enable
input can be driven either high or low to make the motor
spin or stop. But, with Pulse Width Modulation (PWM), we can
actually use this input to control the
speed
of our motor. Just as it
can be used to dim LEDs, PWM is perfect for controlling how fast our
DC motor spins.
Page 4 of 17