This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
There are different approaches to driving a motor when it comes to driving a motor with Arduino. If a simple relay is used to drive a motor it can only turn the motor on and off. In case a single transistor like TIP120 (BJT) or IRF510 (MOSFE ) is used, it is possible to control the speed of the rotation. There exist smarter DC motor drivers (so called H-bridge) that can control the direction of rotation and even brake.
Seed Studio L298 Motor Driver
MC33887 Motor Driver
An example of such a driver is Plolu’s MC33887 Motor Driver which is affordable and versatile. This driver can control a single DC motor with maximum consumption of 2.5A and peaks of 5A. Motor voltage can range from 5-28V which makes it an excellent general purpose motor driver.
Table below describes the marking of the pins on the back side of the MC33887 driver board from Pololu:
Interfacing MC33887 Motor Driver with Arduino
In order to drive a motor with Arduino you will need the components below:
Make the circuit shows below:
Your circuit should look like this:
The circuit suggested above is the simplest form of using an MC338870 to drive a motor. By using D1 and D2, Disable1 and Disable2, one can leave the motor pins in tri-state. FS, Fault Signal, pin can be used to determine malfunction of the driver. FB, Feed Back, can aslo be read with the analog inputs to determine the amount of current being consumed by the motors.
Following pictures show different steps of making an LED bracelet with small 3mm yellow LEDs and pieces of brass tube. Hover your mouse on top of each of the pictures to see details about
Following pictures show different steps of making an LED bracelet with small 3mm orange LEDs and pieces of thin wire. Hover your mouse on top of each of the pictures to see details about that step and click to have a closer look.
Following pictures show different steps of making an LED bracelet with small LEDs and pieces of copper wire. Hover your mouse on top of each of the pictures to see details about that step and click to have a closer look.
Arduino has a limited current sinking/sourcing capability (less than 40 mili Amps) on its pins. Whenever you intend to switch a device which needs high current or high voltage (like a lamp or a motor) an intermediate circuit is needed. In the simplest case this intermediate circuit is a relay.
Relay acts as a normal switch, but is triggered with a magnet rather than a handle. Here we use a special kind of relay called reed relay. Such relays come in vacuum enclosures and have excellent performance in terms of being an ideal switch. Whenever driving coils there should be a diode connected across the coil in reverse bias, so it will damp the back EMF produced. However, the relay we are using has this diode across its coils internally, so we don’t need to worry about it.
Make the circuit below:
Select the Blink sketch (File>Examples>Digital>Blink) from your Arduino software and upload it to your board. The Lamp on the bread and the LED on your Arduino board should light up at the same time.
Note that similar to any other load, relays draw current. This current can be more than what an Arduino can provide. In such cases you cannot connect the relay directly to an Arduino output. Use a transistor for the relay and a diode to protect against back EMF. Here is an example how to drive such a relay with a transistor.