I am using the Adafruit Motor Shield v2.3 for Arduino Uno. I am using the analogWrite() command to power my DC motor and have set the speed to 255. Is there any way to speed up the Arduino motor even further? Thanks!


The speed of a motor is a function of the motor itself and the voltage applied to it. There is no programmatic way of increasing the speed of a motor. You would either need to increase the voltage being applied to the motor (as long as it is within the limits of your motor and speed controller) or find a different motor to use that is faster.

It appears the Adafruit motor shield accepts between 5-12 volts, if you are not already at the maximum of 12 volts, and your motor is rated to allow it, you can increase the voltage you are applying to the shield. All that 255 means in this case is give the motor all the power that is available, so if you are only giving the controller 5 volts, it is only going to give the motor 5 volts.

Also I might recommend instead of using analogWrite() that you use the official Adafruit library to control your shield as it uses its own PWM library which is more performant for motor control than the built-in Arduino one.


Actually, with v2 of the shield, it has its own PWM driver controlled over I2C. In which case analogWrite() shouldn't work at all, or at least it doesn't do what you think it does. Instead use the official Adafruit library and I also recommend following the official tutorial as well.

| improve this answer | |
  • Sorry about that, I was actually using the Adafruit Library. My Arduino us being powered by a 9v battery. However, the motor is only getting 5v. Is there any way to give the motor more power? I can't power the Motor Shield via another source of power; I have to use the VIN Jumper. – London Holmes Jan 29 '16 at 1:23
  • There are plenty of other questions on this site that address this, but the short version is do NOT use a 9v battery for motors learn.adafruit.com/adafruit-motor-shield-v2-for-arduino/… – Jake C Jan 29 '16 at 1:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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