Arduino Motor Shield Tutorial

The Arduino Motor Shield allows you to easily control motor direction and speed using an Arduino. By allowing you to simply address Arduino pins, it makes it very simple to incorporate a motor into your project. It also allows you to be able to power a motor with a separate power supply of up to 12v. Best of all, the shield is very easy to find.

 Arduino Motor Shield

Aside from being sold a number of places online, they are now stocked by most Radioshack stores. For all of these reasons, the Arduino Motor Shield if a cool little to have in your arsenal for rapid prototyping, and general experimenting.

Step 1: Install

The pins of the official Arduino motor shield will only align with Arduino Uno Rev. 3.

Arduino Motor Shield install

In order to make it work with older versions of the Arduino, you will need to trim a few pins off the motor shield. However, this is not, at all, recommended.

Insert the motor shield pins into the socket of the Arduino Uno.

Step 2: Shield Features

The motor shield has 2 channels, which allows for the control of two DC motors, or 1 stepper motor.

It also has 6 headers for the attachment of Tinkerkit inputs, outputs, and communication lines. The use of these pins is somewhat limited, and therefor not covered in this tutorial.

Arduino Motor Shield feature

With an external power supply, the motor shield can safely supply up to 12V and 2A per motor channel (or 4A to a single channel).

There are pins on the Arduino that are always in use by the shield. By addressing these pins you can select a motor channel to initiate, specify the motor direction (polarity), set motor speed (PWM), stop and start the motor, and monitor the current absorption of each channel .

READ  NESBot: Arduino Powered Robot beating Super Mario Bros for the NES using arduino

The pin breakdown is as follows:

Function Channel A Channel B
Direction Digital 12 Digital 13
Speed (PWM) Digital 3 Digital 11
Brake Digital 9 Digital 8
Current Sensing Analog 0 Analog 1

For more information about the technical specs, check out the motor shield’s official page on the Arduino site.

Step 3: Program

Plug the Arduino into your computer’s USB port and open the Arduino development environment.

Arduino Motor Shield program

In order to get the board to do anything, you need to initialize the motor channel by toggling three parameters:

  1. First you need to set the motor direction (polarity of the power supply) by setting it either HIGH or LOW.
  2. Then you need to disengage the brake pin for the motor channel by setting it to LOW.
  3. Finally, to get the motor to start moving, you need to set the speed by sending a PWM command (analogWrite) to the appropriate pin.

If you do not do all three of these things, the motor will not turn on.

In the following steps are some common examples of common motor setups.

Step 4: One Motor

To control a motor using the Arduino Motor Shield, first plug the motor’s positive (red) wire into Channel A’s + terminal on the motor shield, and the motor’s ground (black) wire into Channel A’s – terminal on the shield.

An external power supply is not always necessary, but it drastically improves the motor’s performance. It is recommended that you always use one.

Arduino Motor Shield connecting motor

To connect your external power supply, connect the positive (red) wire from the power supply to the “Vin” terminal, and the ground (black) wire to the “GND” terminal.

READ  Button State Change Detection using Arduino

Finally, upload the code to control the Motor Shield to the Arduino.

Here is the code for controlling one motor:



Step 5: Two Motors

Interfacing with two motors is pretty much the same as interfacing with one motor. Simply plug the motor into Channel B.

Arduino Motor Shield connecting two motor

The only difference code-wise is that you need to engage a second channel to control the second motor.

Here is code for controlling two motors:


For more detail: Arduino Motor Shield Tutorial

This Post / Project can also be found using search terms:

  • arduino motor shield tutorial
  • arduino motor shield code
  • arduino motor shield
  • Arduino Motor Shield Servo Tutorial
READ  Amicus18: Arduino-style platform for PIC fans

Leave a Comment

= 5 + 5

(Spamcheck Enabled)

Read previous post:
Arduino Ethernet Shield
Arduino Ethernet Shield Tutorial

The Arduino Ethernet Shield allows you to easily connect your Arduino to the internet. This shield enables your Arduino to...

Scroll to top