Demand Peripherals
Robotics and Automation Made Easy

Home » Development » New Product Ideas » Dual voltage/current motor controller (Dual speed (voltage) / torque (current) motor controller)
Dual voltage/current motor controller [message #4] Sat, 11 April 2020 02:28
BobSmith is currently offline  BobSmith
Messages: 10
Registered: April 2020
Junior Member
Most DC motor controllers use and H-bridge and PWM to set the average voltage on the coil of a DC motor. The motor will try to spin fast enough to generate a back EMF equal to the average voltage applied by the H-bridge. In this regard, PWM and an H-bridge controls the speed of a motor and is appropriate for controlling the wheels on a robot.
An alternative but more complex way to control a motor is to set the current in the DC motor coil. Controlling the current controls the torque from the motor and might be appropriate for applications such as robotic arms that need to carefully lift an object off a table.

A simple way to do both voltage and current control is to use a variable DC-DC buck voltage converter. DC to DC converters are fairly inexpensive and measuring current is easy for a DC supply. A common approach is to use a standard buck converter, such as the XL4005, to control the voltage and add a circuit that senses the current. The current sense voltage can be scaled and diode OR'ed with the voltage feedback. When the current is too high, the FB pin on the XL4005 is is pulled above 0.8 volts and the XL4005 turns off the current for that cycle. An example of this type of circuit can be found here: -module/

The output of the DC-DC converter goes to an H-bridge that controls the direction of the motor. The FETs in this H-bridge do not switch at high frequency and can have very high gate capacitance. Typically this means these FETs could lower cost compared to most H-bridge FETs.

The next problem to solve is how to set the desired voltage and current for each controller, and how to measure and report the actual voltage and current for each controller. A simple approach would be to use the ADC channels on an AVR ( to measure the voltage and currents, and to use an SPI based digital pot to set the target voltages and currents. We may want to use two MCP4252 chips and cascade the pots to get better than 8 bits of resolution.

The host driver software should be fairly simple and can be based on the sample code for the DPI AVR card.

One potential problem to consider is how the circuit behaves versus the inductance of the controlled motor. A simple PWM controlled H-bridge is always stable. A DC-DC converter has an inductor and a capacitor in the output path already, and adding another inductor for the motor might affect the stability of the overall circuit. We may need to specify an upper limit for the motor inductance.
Previous Topic: IMU Card
Next Topic: Weather sensor card
Goto Forum:

Current Time: Thu Jun 20 21:19:06 UTC 2024

Total time taken to generate the page: 0.01583 seconds