Assembling the ArduinoTM Freeduino Motor Shield
SCHEMATICS (click on images to enlarge)
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
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 |
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.
We continue with the capacitors:
C4, C9 | 100uF electrolytic capacitor |
C10, C11, C12, C13 | 100nF ceramic capacitor |
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.
NOTE 2: In the new version of the PCB (white), the picture shows the capacitor C9 correctly soldered.
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.
The motor shield, completely assembled and ready to use.
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.
The second motor (MOTOR A)goes on the 2 bottom socket holes.
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
I recently purchased the motorshield for the Arduino, and have been attempting to use it with my Freeduino board, without success. The Freeduino board itself works just fine, it’s only the motorshield that is not working. The power LED doesn’t light up, whether the board is powered by USB or 12V dc, and the test program doesn’t work with any of the motors I have tried. I was careful in assembling it to ensure that all components were oriented in the proper direction, and was careful with my soldering to establish secure joints, and there are no bridges or any sort of visible short. I would appreciate any advice you could give me, and I look forward to reading your response.
Sincerely,
Eric Rasmussen
The solder joints from one of the electrolytic capacitors seem dangerously close to the outside of the USB connection. I have added a little rubber bumper to prevent issues, but it seems way too close. Any other ideas?
Eric, if the LED doesn’t even come on you might have got the wrong resistor in R7 position or a dry joint. No LED means no power getting to the shield – pretty basic and easy to locate I would think. I have just started building mine, will post here if I have any problems.
Yep, Eric is corret the power light doesn’t come on when plugged into my Seeeduino board either – haven’t tried motors etc. The 5V does get to the chips though.
The power LED only comes on when the Vin pin is connected to the voltage source for the motors. The shield needs both the 5V for the digital circuitry and Vin for the motors. You can use the same Vin as in your arduino board (there is no Vin if you are sourcing the voltage from USB), so to use this shield, you need an external power supply. You can use a different Vin for the motors if you connect the male pin upwards and connect there a different source.
Is it possible to modify the PWM frequency in the same way that one can directly from the Arduino board? Eg, is this mostly a amp circuit to allow voltages greater than the 5v ttl?
The logic portion of the motor driver is 5V TTL. The motor driver portion can work up to 36V.
Admin, let me just confirm – The motor shield will not work if it is plugged into JUST USB, correct? It needs external power?
Correct. The motors get power from Vin.
Note that if your *duino has a USB port, it will EASILY short the C9 capacitor and the whole setup, making the power LED turn off. Put some tape over the top of your USB port to keep this from occurring, as it could happen with other shields, too.
In the new version of the PCB (white), the position of the capacitors were moved to avoid touching the USB connector.
Just got mine and pieced it together. Works great, though like Grant said, the Arduino Duemilanove USB connector shrouding is almost touching the pins for C9. Gotta put a scrap of electrical tape or something like that over it before I put it in anything “real”. Note that on the board, the section marked IC1 is NOT the place to put the 14 pin socket for the 7400. Perhaps you folks should update the text to reflect the right section to put the 14pin socket into. Would have saved me an hour or so of debug time.
Anyplace we can get the encoder schematics/partlist from, in case we want to add it on?
In the new version of the PCB (white), the position of the capacitors were moved to avoid touching the USB connector.
The schematic published in the blog contains both the motor driver and the encoder.
just finished building mine and the led goes on but the motor doesn’t turn. the motor makes a quite buzzing noise but it doesn’t move. please help
It needs external power. The logic gets power from 5V, but the motors get power from Vin.