i'm controlling the velocity (and position) of a small motor, and i'm able to make everything work with just proportional control, but when I try to add an integral term to improve the performance, it doesn't act as I'd expect. it just ramps up to the output limit (255), and doesn't reduce as the error is reduced. even if the error goes to zero, the output will only increase.
my code is somewhat convoluted and messy at this point, but I will post it if that will help. I was hoping someone might be familiar with the library in question, and perhaps has encountered this problem before. I'm not sure if I'm doing something wrong, or that's just the way the library is meant to work, in which case i'll have to write something myself for this purpose.
From the URL, that sounds like Brett Beauregard's library which lots of people have used successfully, so the issue is likely either your PID parameters or some other issue in your code. For better help, you'll need to post it.
One other possibility is that you're being hit by integral windup q.v.