I am making a little robotics project were my robot spins around a shaft. Since it can't spin a full 360º turn I placed some limits in the software but just to be sure I also placed two limit switches to disconnect the motor in case the robot hits them (thus going beyond it's limits).

In case the robot hits the limit switches, the motor will be disconnected and I will have to turn the motor by hand to release the switches and reconnect the motor to the circuit. To avoid this, I planed to place some diodes that will make the motor only turn in one direction (back to it's operational range) in case the switches were triggered.

When I was testing this, I connected the ESC (Electronic Speed Controller - Basically an H-Bridge) in series with the diode (a 30V 5A schottky diode) and the motor (a regular DC brushed motor with no load) to see how it will behave, and the result was really a surprise to me. The motor at first didn't spin and then after some seconds it started to spin faster and faster, so I disconnected it to be safe. The ESC was programmed to spin the motor at a constant speed (25% of the maximum speed) with a 10KHz PWM.

Can anyone guess what's happening? I looks like the diode is charging the motor, but I can't see how.

PS: Don't mind the direction of the diodes in this drawing, I am not sure about the real position of them. In the test I just connected the diode in such a way it will be in series with the motor so I could test it.


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ Thanks Dave, as I said it was just for illustration purposes, but I will update it to avoid misunderstandings \$\endgroup\$
    – mFeinstein
    Jan 20, 2014 at 22:06
  • \$\begingroup\$ Yes, it's a DC brushed motor (since there are just 2 wires in the drawing I didnt mentioned), and a 25% PWM, with no load in the motor so it will be around 25% of max speed. The motor max current is about 1,5A with 5,5A stall current. Since there was no load, the current must be around 0.3A (I measured this in another test and I can assume it will be the same) \$\endgroup\$
    – mFeinstein
    Jan 20, 2014 at 23:19
  • \$\begingroup\$ schottky diodes...I will update the question with all this info \$\endgroup\$
    – mFeinstein
    Jan 20, 2014 at 23:26

1 Answer 1


My best guess is that the motor speed controller is using the back-EMF of the motor as feedback to control the current it feeds to the motor.

By preventing it from seeing the back-EMF (blocking it with a diode), it thinks the motor is not turning, so it cranks the current up (and up). The delay and the ramping up time and rate are related to the control algorithm and the tuning of the control loop.

You may be able to get it to work by paralleling the diode with a resistor of just high enough value that the motor won't turn in the wrong direction, but hopefully low enough that the controller can still read the back-EMF.

  • \$\begingroup\$ I don't think that's the case because I didn't implement this logic. I just placed a fixed PWM value in the MCU and the H-bridge just reads PWM and outputs the battery to the motor \$\endgroup\$
    – mFeinstein
    Jan 20, 2014 at 22:09
  • \$\begingroup\$ The DC motor controller is your design? Is there IR compensation? The diode also blocks the motor inductance from discharging, but I don't think that's it. \$\endgroup\$ Jan 20, 2014 at 22:32
  • \$\begingroup\$ At first I thought the diode could be blocking, but since its pointing to the direction were the current is flowing so it will discharge. I dont think there is no IR compensation, I am using a H-Bridge IC. \$\endgroup\$
    – mFeinstein
    Jan 20, 2014 at 22:35

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.