Finally had a chance to sit down and play with the ebay peristaltic pumps.
I initially used the default PWM frequencies of 488 and 976 Hz. Both of these resulted in a very audible whine and no functionality below 50% duty cycle.
After much googling, I discovered that it's possible to adjust the ATmega328's internal timers using prescale factors. Through trial and error, I've arrived at a frequency of 3.8 Hz as my final value. To get there, you take the base frequency of the pin (31.25 kHz for pins 9-12) and divide by the prescale factor. I'm using a prescale factor of 8096, which corresponds to a timer prescale value of 8192.
It seems as though these motors lose quite a bit of torque at the default frequencies, so anything less than 50% duty cycle resulted in whining but no movement. Lowering the PWM frequency allows me to dose as little as 0.225 mL/minute or as much as 60 mL/minute. It also eliminates the annoying audible whine. The consistency at this setting is not bad, either. At one minute of dosing, I measured a low of 1.19 mL and a high of 1.25 mL, with an average of 1.22 mL/min. Not bad at all for $12.
|