I need to find a PID controller for a 12V 1hp DC motor.

I am currently building a tachometer for velocity feedback.

My question is if anyone can suggest PID control hardware and software that is good for this type of motor?

I was thinking about using this driver from Pololu with an Arduino microcontroller but I am not sure if this is a robust enough solution. Also I dont believe that this can handle the current from the motor. Still doing calculations on that.

I will need to program a routine for the motor to run through. It will speed up, slow down, and change direction over time. Actually I will be using two motors but I figured it would be hard to find a dual motor PID controller. Any suggestion would be greatly appreciated.

  • \$\begingroup\$ Microchip dsPIC parts are among the cheapest parts capable of easily doing PID, and Microchip has a lot of application notes on the subject. \$\endgroup\$ – Adam Lawrence May 27 '11 at 3:17
  • \$\begingroup\$ you might be able to do the job with an arduino, it all depends on how fast you want the PID to run. if you're just recomputing the motor current command at 50Hz, that's probably reasonable. \$\endgroup\$ – JustJeff May 27 '11 at 9:56
  • 3
    \$\begingroup\$ Don't expect the "thinking" part of your system to be able to power your motors directly. \$\endgroup\$ – Kellenjb May 27 '11 at 12:13
  • \$\begingroup\$ Please put in numbers for your interface specs. for motor DCR in mΩ , max RPM, no load, max RPM full load., max weight and acceleration, max velocity and some tolerances. Then what step response do you need for the PID to solve your specs requirements. Overshoot? slew rate. stead state error? Make a list of specs in your question and if you dont know put in TBD or ____ and include cost or size if that matters My Rule of Thumb is H bridge RdsOn is 10% of Motor DCR yet your question is control of PID feedback which affects heat rise in RdsOn so this matters too. Can U do this? \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Apr 11 '19 at 19:05
  • \$\begingroup\$ Since dual motors implies a difference in motor RPM means a turning torque, what is your tolerance for RPM and matching torque in each motor? include in specs. Can U Do this? as well as possible \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Apr 11 '19 at 19:09

It sounds like you have some things there that makes it hard to find a ready device that can do the work (but I'm not sure).

It sounds like you have to either write a PID yourself, or use a PID in some library (like the Arduino).

I am unsure about the stability of the Arduino solutions, will this solution still be stable after a year? Or do you need to reboot it every day? But maybe it is good enough? (Test it for a month a see what it can do)

If you decide to write a PID yourself, the paper called PID-without-a-PhD is a good start:

And you also have application notes on this topic from more or less every MCU maker out there.

| improve this answer | |

I am making a similar project, for my project I am not able to use a microcontroller thus I will contruct my PID with operational amplifiers, for the design of the PID I will use the W R Evans root locus method, or the Ziegler-Nichols method.

I think it will be easier if you use a microcontroller but in case you want to try the analog solution I hope this help. Good luck!

| improve this answer | |
  • \$\begingroup\$ It would be interesting to see only one op-amp acting as a PID. \$\endgroup\$ – Harry Svensson Apr 9 '19 at 8:30
  • 1
    \$\begingroup\$ @HarrySvensson Like this. Like before MCUs. \$\endgroup\$ – Spehro Pefhany Apr 11 '19 at 17:54

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.