I am using an Arduino uno R3 with the motor shield R3 with 1 DC motor (http://www.maplin.co.uk/small-motor-3738) pluged in by the USB port (because I dont have a proper power cable). When i first used the DC motor it went way too fast so i turned the speed down but then it didn't start so I turned it back up to 255 the speed I started with. The motor still didn't start so I tested the motor with a 1.2 volts fully charged rechargeable battery and it worked fine as before but when I plug it into the Arduino it only makes a quite noise. The LEDs on the shield also seem to be dimmer than before.

This is the code I used

const int pwm_cha = 3;
const int dir_cha = 12;
const int brake_cha = 9;
const byte motor_speed = 270;

void setup()
    pinMode(pwm_cha, OUTPUT);
    pinMode(brake_cha, OUTPUT);
    digitalWrite(pwm_cha, HIGH);
    digitalWrite(brake_cha, LOW);
    pinMode(dir_cha, OUTPUT);
    digitalWrite(dir_cha, LOW);

void loop()
  analogWrite(pwm_cha, motor_speed);
  analogWrite(pwm_cha, 0);

Please give ideas on what I can do to solve this, thanks.

  • \$\begingroup\$ Motor details??? \$\endgroup\$ Commented Mar 23, 2013 at 19:07
  • \$\begingroup\$ You really need a proper power cable. Trying to run a motor from the same USB cable that supplies power to the processor is asking for trouble. \$\endgroup\$
    – Joe Hass
    Commented Mar 23, 2013 at 19:20
  • \$\begingroup\$ Do you think I broke the shield then? \$\endgroup\$
    – Blob
    Commented Mar 23, 2013 at 19:36
  • \$\begingroup\$ No, but you will need a proper power supply for the motor. \$\endgroup\$
    – Joe Hass
    Commented Mar 23, 2013 at 20:15
  • \$\begingroup\$ Are you sure const byte motor_speed = 270; is correct? 270 sounds a bit high, I'd expect max 255. \$\endgroup\$
    – jippie
    Commented Mar 23, 2013 at 22:03

1 Answer 1


There is definitely something wrong here. Look at this page: http://www.maplin.co.uk/small-motor-3738#specification

Operating voltage: 1.5 to 3V

No load current: 200mA

Current at max efficiency: 660mA

I bet the motor shield outputs a higher voltage than 3V and given these specifications the current draw from the USB port was probably exceeded.

Check your Arduino and motor shield on another USB port without the motor connected. (BTW: I sometimes have to reboot my PC when my USB port went into overcurrent protection).

In future use an external power supply when powering motors as the current they draw it too high for the average PC.

Also connect a series resistor to reduce the motor voltage to 3V or even better: use a 3V power supply or a 5V motor.

  • \$\begingroup\$ Thanks for the help, I set the speed to high I am now using a external power cable but it still goes through the usb port ill check whether thats ok. \$\endgroup\$
    – Blob
    Commented Mar 24, 2013 at 8:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.