Using the Arduino to control a 12 volt micro-pump

I'm in the middle of trying to control 6 micro-pumps using 12 momentary on switches to control the time they operate (therefor dispensing a predetermined amount of liquid the pump will move). 2 switches will activate one pump for two separate times (for example push switch 1 and the pump will give 1 ounce of liquid or push switch 2 and the same pump will then give 2 ounces of liquid). The times must be adjustable by using a separate keypad once the Arduino is programmed.

If anyone can help, additional information on what I am trying to accomplish is available on my web site @

The fact that you require 6 output pins for the pump relays and 12 input pins for the switches, that almost maxes out the 20 total I/O pin that a 328 based arduino board offers. That leaves little room for expansion. So you could either start off with a mega board which has 54 I/O pins, or start with a design that utilizes external shields to add I/O pin expansion. Or you could utilize matrix scanned keypads that can save on I/O pin Vs a little more complexity in the software. On surface not really a demanding application, just lots of little details to work out.

As far as the software side, It looks pretty simple. However I would need to know more about the pump operation. Does just commanding a relay on for a short pulse guarantee the correct amount gets dispensed, or does the relay have to stay on for the whole time period programmed, with the assumption that the pump will always dispense the same amount of material in that fixed time period?

There is no apparent feedback mechanism shown in your block diagram for actually measuring the product being delivered. What you show is called 'open loop' control where you make assumptions that parts of the system will always operate correctly and consistently given the same commands at the same specific time periods. A 'Closed loop' control system would include feedback measurements that might in this case be measuring the actual flow of material or weight the product being added. These 'process' measurements also allow warning alarms or automatic shutdown based on actual measurement Vs expected behaviour.

Bottom line is I think the Arduino platform will work just fine for your application. It's just a matter of details being researched, hardware build and sketch developed. Go for it. 8)