So I have been trying to make a PID loop controlled high precision DC geared motor.
Here are the parts I'm currently using:
Arduino Mega Robogaia encoder counter - http://www.robogaia.com/two-axis-encoder-counter-mega-shield-version-2.html Ladyada motor controller 12 DC Geared motor with US Digital encoder - http://www.phidgets.com/products.php?product_id=3262E_0
I'm using the arduino PID library and I nearly have everything working fine. I have tuned it so it is relatively stable, but when it comes to rest at the final set point the output of the PID does not go to zero. It stays at a value just low enough for the motor to not overcome internal friction, but high enough to cause a buzzing in the motor. Here is a video:
I tried putting in an if statement to set the output to zero if the error between the set point and the actual position was zero, but that didn't work flawlessly.
My ultimate goal is to replace the stepper motors on my pan-tilt camera rig with DC motors with encoders. Here is a video of that project if you are interested: https://vimeo.com/51856361
Any help appreciated!