I am using a VEX 2-wire motor with the Motor Controller 29 to use it like a three-wire motor.

I was told that I am able to program it like a servo using the Arduino Servo class. When I use the write() function to set the power, it works from values around 50-85 in one direction, slowing down the power as I increase the value, but when the value exceeds around 90 then the motor stops working and makes strange clicking sounds. It is not a hardware problem, because the motor works fine in either direction when I plug it straight into a power source.

Does anyone know what my problem is?

  • What power supply are you using to power the motor? Those VEX motors have a stall current of at least 3A, so you'll want to be providing a fair bit of power to the motor controller.
    – cortices
    Jan 2, 2016 at 3:34
  • I'm using the 5V pin that is built-in to the arduino. Jan 2, 2016 at 17:38
  • and what is that powered by? USB will not be enough power, and the voltage regulator on board cannot cope with that much current. You should be powering the motor from at least a 2A 5V power supply, and you can power the arduino from it via the 5V pin if you wish.
    – cortices
    Jan 5, 2016 at 2:00
  • I'm using a 9V battery to power the Arduino. Jan 5, 2016 at 3:37

1 Answer 1


VEX motors with Servo library have the following functionality:

0 one direction (full speed)

90 stop

180 opposite direction (full speed)

So at 90, it is trying to remain motionless and hence creating that sound.

btw. You should provide power to motors separately from the Arduino. You might fry your Arduino if you run VEX motors from it. Best solution is to power using 7.2V 3000mAh Flat NiMH High Power Battery Packs.

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.