Archive for the ‘Shields’ Category

Assembling the Freeduino (Arduino) Motor Shield

Thursday, March 12th, 2009

Assembling the ArduinoTM Freeduino Motor Shield

SCHEMATICS (click on images to enlarge)
freeduino motor schematic

The Freeduino Arduino Motor Shield is the original Motor Shield V1.1 designed by David Cuartielles of the Arduino Team. This product is not certified nor endorsed by David or the Arduino Team.

The new version of the KIT features a white PCB.  The capacitor placements were slightly changed to avoid touching the USB connector.  The board has 2 parts, the motor driver and the encoder.  The KIT only includes the components to assemble the motor driver.  In the new PCB, the components for the motor driver are marked with a *.  You only need to solder the components market with * to have the fully functional motor shield.  The encoder components soldering is optional.

First, unpack the kit

freeduino motor KIT

freeduino motor KIT

and start with the PCB. The PCB has some extra space for an encoder. It is optional to assemble the encoder section. The kit only includes the components to assemble the motor control section of the PCB.
Let’s start with the IC sockets using the following parts:

IC Socket 1 14-pin IC socket
IC Socket 2 16-pin IC socket

Freeduino motor KIT

Freeduino motor KIT

Then, we can solder the resistors and the LED.

PWR 3mm LED
R7 1K resistor
R3, R4, R5, R6 100K or 68K resistors

The LED has two legs, one longer than the other. The longer leg is called ANODE (+) and the shorter is CATHODE (-). The LED goes in the PWR LED space. Insert the long leg into the left hole.

Then solder the 1K R7 resistor, and the four 100K (or 68K) R3 to R6 resistors.


Freeduino motor KIT

Freeduino motor KIT

We continue with the capacitors:

C4, C9 100uF electrolytic capacitor
C10, C11, C12, C13 100nF ceramic capacitor

Freeduino motorKIT

Freeduino motorKIT

This is the board with all the components installed, before we solder the sockets.

NOTE: The C9 capacitor was installed backwards in the picture. Follow the marking on the PCB, which is positive down, negative up.

Freeduino motor KIT

NOTE 2: In the new version of the PCB (white), the picture shows the capacitor C9 correctly soldered.

Freeduino motor KIT

Solder the rest of the components: male sockets to plug the shield to the Freeduino / Arduino board, and the 4-pin female socket to plug the motors.  The 4-pin female socket was replaced by male pin header.

Freeduino motor KIT

Freeduino motor KIT

The motor shield, completely assembled and ready to use.

Freeduino motor KIT

Freeduino motor KIT

You can connect two DC motors. One goes on the first 2 socket holes (MOTOR B), from the top.  The new version (white) includes male headers for the motors.
Freeduino motor KIT

The second motor (MOTOR A)goes on the 2 bottom socket holes.

Freeduino motor KIT

A simple Arduino code to test the shield:

// Motor Shield test
// by NKC Electronics
// Test Motor B

int dirbpin = 12; // Direction pin for motor B is Digital 12
int speedbpin = 9; // Speed pin for motor B is Digital 9 (PWM)
int speed = 200;
int dir = 0;

void setup()
{
pinMode(dirbpin, OUTPUT);
}

void loop()
{
digitalWrite(dirbpin, dir); // set direction
analogWrite(speedbpin, speed); // set speed (PWM)
dir = ((dir == 0) ? 1 : 0); // change direction
delay(10000); // 10 seconds
}

Motors can be any DC motor that can work up to the Vin voltage. Vin is the power supply voltage – 0.6V. If you are using a 12V transformer, then Vin is 11.4V. You can use a 12V motor. If you are using a 9V transformer, then Vin is 8.4V and you can use a DC motor rated at 9V.

The motor driver can support 3.6V to 36V motors (1A). But the shield is designed to take Vin from the Arduino / Freeduino power supply, before the 5V voltage regulator. You cannot supply Arduino / Freeduino with 36V without burning the voltage regulator.

If you need to use a motor rated < 7V or > 14V, you will need to modify the shield. Do not install the Vin pin header to the Arduino / Freeduino board (or install the Vin and GND pins upwards, to plug a connector from where you can supply this shield with a different voltage range than the Arduino / Freeduino board)… and install a socket and supply Vin in the Shield from a different regulated DC power source, using the same GND connection.http://www.nkcelectronics.com/arduino.html