For a work school project of mine, I am trying to make a self-balancing robot. I am using these Pololu DC motors and my 4s Lithium Ion battery pack outputs 15.7V at a rated 2Ah. Currently I am using the L298N Motor Driver and a PWM signal from an Arduino Due to control the geared motors. I understand that effective voltage corresponds to RPM and effective current corresponds to motor torque. My teacher would strongly prefer I switch to a current-controlled driver instead so that I can vary motor torque as apposed to RPM. How do I go around doing this? What motor drivers vary current and keep voltage at a steady 12V?? I also need the driver to be bidirectional. Will this driver sold on Pololu work??

  • 2
    \$\begingroup\$ You cannot vary current and keep the voltage steady. You CAN sense the motor current, and adjust the drive voltage to get the desired current - this is a current-control loop. Those shields may help but it would be possible with the L298 too. \$\endgroup\$
    – user16324
    Commented Feb 4, 2021 at 20:20
  • \$\begingroup\$ There are thousands of undergrad thesis paper on this subject. If you want to learn quick, find them \$\endgroup\$ Commented Feb 4, 2021 at 21:07
  • \$\begingroup\$ Motors are rated in kRPM/V for no load yet at full load you may only get 50% of this RPM. so monitor current and voltage for torque and velocity feedback with encoder position to make it work. A MOSFET Full Bridge is more efficient and powerful than L298N. PID demands a transfer function and feedback is best in linear mode rather than integrating position to get velocity it is better to use current sensing amplifier to measure torque and calibrate for acceleration. Amplify 50mV max @ current for efficient use. example diva-portal.org/smash/… \$\endgroup\$ Commented Feb 4, 2021 at 21:34
  • \$\begingroup\$ You can't change the current and the voltage both at once. What you can do is control one of them. "Voltage driven" means you tell it the voltage and let the current do whatever it wants. "Current driven" means you tell it the current and let the voltage do whatever it wants. \$\endgroup\$ Commented Feb 5, 2021 at 3:53

1 Answer 1


Basically you need a DC motor PWM control, as you already found out, you control the motor voltage. Then you do need to measure the current and control the current by controlling the voltage. For this purpose a PI controller in your MCU shall be used.


simulate this circuit – Schematic created using CircuitLab


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.