Need help with controlling DC motor Ramp Up

My sons’ peg perego electric tractor needs a soft start added. I am looking for a motor drive and motor controller that I can use an Arduino controller with. I am 100% a mechanical engineer so I have no idea what I am doing and want to take this opportunity to learn. The tractor has two 165W motors. It has 2 speeds and reverse. In the manual the schematic shows that low speed has the motors running in series and high speed has them running in parallel. Which motor DC motor controller would you recommend and is the Arduino the easiest controller to start off with?

165W is a huge motor! Better confirm again this spec. Usually you need to know the motor’s input voltage and rated current before you can choose a motor driver.

Yeah, Arduino is the easiest platform for beginners.

1 Like

I called Pegpergo again this morning and they said the manual shows two 165W motors. The motor input voltage is either 6V or 12 V which is for high and low speed. It is wired where low speed the motors are in series and high speed the motors are wired in parallel. I found some soft starts controllers on amazon but none of them can go to 6V and meet the continuous amperage of 2 motors at 165W at 12 V which would continuously pull 13.75 amps x 2 motors = 27.5 amps. I am not an electrical engineer and am very weak in this area but I am concerned that the motor controller would get too hot if I undersized it. I have found motor controllers without soft start that fits these specs. This is where I hope to control the ramp up with the Arduino. I don’t know any code or anything about setting this up. I don’t know which Arduino to buy to get started either.

This motor driver meers your requirement. Support 5V-30V motor and able to run up to 30A continuous. But it is a single channel motor driver, so you need 2 units of this:

By the way, you do not need to change the input voltage to reduce the speed. The motor driver does this for you. Just supply 12V from your battery, connect the PWM and DIR pin of the motor driver to any two digital pins on the Arduino board. Change PWM value from 0-255 to change speed. Give ‘HIGH’ or ‘LOW’ at DIR pin to change motor spinning direction.


Since I need two controllers could I buy QTY of 2 Cytron 13A version? Also, how would I wire this up? Would I hook the existing wires going to the motors to the input side of the controller and the output side to the motors? Also, how do I program this?

  1. Your motor requires 13.75Amp, I suggest you get a bigger motor driver to give some tolerance on it. Can try the new 20Amp Motor Driver:

  2. Yes, they are single channel motor driver, so you need 2 units if you want to control 2 motors.

  3. Simply connect the 12V battery to the power port, the motor’s terminal to the motor port and the signal port connect to your microcontroller (Arduino).

  4. Give PWM value to the PWM pin to control speed. To change motor direction, give ‘HIGH’ or ‘LOW’ to the DIR pin. (see table below) You can use the sample code if you are using Arduino.