I am using the Arduino with the PID Library to control 2 very precise water pumps. The way it works is by aiming a laser horizontally across a small trough (aprox 300 uL) and picking up the amount of light hitting a photodiode on the other side and depending on how much light is hitting the photodiode telling the pumps to speed up/slow down.
My problem is that the pump I am using has a speed controller built in that uses an analog input to control the speed. I spoke with a technician that makes the pumps and he said that using PWM to control the input voltage to the pump would probably not be very accurate because there would be frequency issues between the arduino and pump controller. There are the pumps I will be using: http://www.instechlabs.com/OEM/pumps/
I was wondering if there is any attachment/shield that I can use to very accurately simulate an actual analog signal instead of using PWM. I found this shield http://blushingboy.net/p/motorShieldV3/page/Example-DC-motor/ that might work, but I don't know if I'll be able to use it with the PID which is crucial.
I was also thinking I could order just the pump/motor without the speed controller attached and use the arduino to control the motor all by itself using PWM... but I'm not sure if the arduino all by itself would be precise enough for my application.
My last idea was to possibly use a frequency to voltage converter, but I've already got a very complex, messy circuit to amplify the quadrant photodiode and I would hate to have to add even more stuff to the circuit and risk messing it up because it's taken me a while to get to where I am now and DO NOT want to go back to troubleshooting what's wrong with that circuit lol. But if that would be the most precise solution I'd be willing to do so.
Anyone with experience with these things I would love to hear which method you think would be the best route to take.