DC motor behavior

Hi,

I am trying to control two 12V motors from a ride-on toy with arduino uno using PWM.

Motors are similar to here:

I am using Cytron MDD10 A dual channel motor driver from RobotShop and a 12V 9 AH battery

What I see is that the motor behavior is a little erratic and not smooth (doesn’t stop immediately after pwm input signal is 0 etc. ).
I also get that (scary) motor smell which makes me wonder if I am missing anything in my circuit like capacitors and/or a flyback diode diodes ? I am not an electrical guy and I read in few different forums that we need capacitors and other things
for DC motors to protect for inductance, back emf ???

Can some one help me understand why is this happening and how can I make sure I have a proper circuit.
(what components do I need and where should those be added)

For comparison, I tried the setup with 2 12V DC motors from Robotshop (RB-Dfr-444) and they seem to work fine and smoothly.

Thank you.

Hello @anup !

The diodes in this application are not there to block current, but to allow a low-impedance path for the coils to discharge themselves through. If such a path is not provided, then when the coil’s supply is stopped at each cycle, the stored magnetic energy must find a path for discharge. This results in the coil expressing an arbitrarily high reverse voltage across its ends till the energy finds a way to get out.
Result: This high voltage shows up across the MOSFETs, which die a miserable death.
The diodes thus provide a short-circuit discharge path, dissipating this energy as heat within the diode.
The capacitor’s function is to act as a local energy store, to provide some of the energy required by the motor during the initial spike of each turn-on, and storing back some of the energy that kicks back onto the power rail at each turn-off. Without the capacitor, the current spikes at each edge would completely need to be served by the supply rail. As any supply connection will have some resistance, these current spikes thus result in voltage dips on the supply rail.
In simple terms, the capacitor smooths out the spikes due to temporary power demand and temporary power surplus, as the coils are energized and de-energized.

I hope this could help you! :grin:

1 Like

@RoboCS. Thanks for the links and for the info.

While I understand now why do we need diodes, I am not sure how to choose the right one.
Is there any specific value of the diode that I should look for ?

Also, while my motor is connected to the motor controller, where exactly should the diode be connected. Any idea ?

Hi there @anup

As RoboCS suggested an H-Bridge is a great control circuit for DC motors. You mentioned you are using the Cytron MDD10 A dual channel motor driver and that board contains a Full NMOS H-Bridge so you don’t need to actually implement that circuit yourself.

The thing is that erratic behavior is a bit concerning and it might be because of the current consumption of the motors you are using. The current shouldn’t be more than 10A continuous and 30A peak (10 second) for each channel. You said the motor is similar to this, I see some amperage values way higher than 10A (Current: 64.576 Amp / Current : 32.858 Amp) so you should give that a look. I also checked the RB-Dfr-444 and those say Stall Current: 7A, that could be why those are working for you.

I hope that information can help you out :wink:

Hi geraldinebc15,
Thanks for the tips :slight_smile:

I am running the motor at minimal load ( just gearbox). I dont think there will be excessive current draw ( above 10 A) at such conditions.

Hey @anup !

As @geraldinebc15 says, the diodes must be include in your motor control board. The only element that very likely isn’t there is the capacitor. Usually you can connect it just like in the photo.

What I might suppose is that it should be a voltage problem. Maybe, since you don’t really know the type of motor you’re using (right?), it probably works with a lower voltage supply. You can then check to reduce the voltage level and analyze the behavior.

If you really want to do it right, you should characterized the motor to obtain its truly parameters values. For example:

To determine the stall current (which will vary depending on the voltage applied) - put a multimeter in series with the motor and battery: First, set you meter (or oscilloscope) to measure current, and put the probes into the proper jacks on the meter for current measurement - then, hook up the meter in series with the motor - battery + to motor terminal, other terminal to meter, other meter terminal back to battery.

Have you thought about working with the motors that do work?

@RoboCS !

Thanks. Regarding the motors, Yes I don’t know much about them but I know that people have used these 12 V motors for their DIY projects like controlling ride-on toys with arduino etc.

Thanks for the link for motor characterization. I will try to run those tests.
The reason I am not using the rb-dfr-444 motors is 1. They are not powerful enough and 2. I have hard time figuring out the gearing for those motors to get more torque.

The MDD10 A specs don’t say if they have flyback or similar diodes included . I tried contacting the company but no response yet. Should the Full NMOS H-Bridge in these motor controller be enough to assume that back emf won’t be a problem?

Also, any idea what value capacitors would be required ?

Thanks again for your help

1 Like

Hello @anup !

Awesome, let us know how is everything going. I think you can try with a capacitor of 10uF , in the figure you can see how it should be connected.

You’re welcome and see you around! :grin:

Thanks @RoboCS .

So I checked with a couple of people and also from the discussion on this forum, I realized that the protection diode or capacitor are not going to protect the motor which was my primary concern. The motor controller that I am using should have required protection (flyback diode etc.)

At this point, I haven’t added anything additional to my circuit. I am just making sure that the supply voltage matches with the motor rating and also made sure that there is no overloading of motors happening which I think are the primary reasons for a motor to get damaged.

Thanks for your help.

2 Likes