measuring volume of liquid

hi guys, i was wondering if anyone new of the best way to go about measuring volumes of liquid. It wouldn't need to measure more than 500ml and have a tolerance of about 10-15ml. I was thinking some sort of flow meter or float sensor. What do you guys think? I am fairly new to the hardware side of things but I work as a programmer so I am not too worried about the programming side of things.

Thanks a lot.

I'm sure there are high-tech sensors for this, but I use a Freescale differential pressure sensor for this task. One side of the pressure sensor is exposed to the atmosphere, the other side is connected to a tube running down the (almost) the bottom of a graduated cylinder of known diameter. As the liquid level rises, the sensor reports a progressively higher pressure.
To calibrate the sensor, I filled the cylinder to specific levels, and then generated a lookup table based on these values. Accuracy depends on the diameter of the vessel, for my 15mm cylinder, I get about +/-0.75ml of resolution.
Freescale has an application note to this effect somewhere on their site (I believe they discuss a washing machine).

Thanks for the quick response. This makes sense, and would likely work perfectly for what I want to do. Do you happen to know the part number of the specific sensor you have? What kind of tube did you use in the cylinder, just some sort of thin walled plastic tubing?

I used generic poly tubing... I headed to the hardware store with the sensor in hand and picked up the thinest walled tubing that fit the sensors head.

My notes say I used an MPXM2010GS. The Freescale appnote is AN1516 and AN1950 both have some details on picking a sensor based on your specific water level needs.

thanks, that one seems like it would work for my purposes. did you have to do anything for voltage amplification or anything else special to get usable values to come into the arduino? sorry about all the questions, but as i mentioned i am pretty new to the hardware side of things.

The MPXM2010 provides (if I remember right) a differential signal with only 25mV of full scale span. So you'll need some involved opamp magic to make it into a usable signal.
If you're trying to ignore the analog side as much as possible, I'd suggest something 'integrated', like the MPVZ5010, it provides a signal you can just hook up to the Arduino's analog input pin (it's also a 10kPa part, like the MPXM2010). It's available in a through-hole part, so you can just plug it into a breadboard. You want MPVZ5010GW7U which is a through-hole gauge part with a port on top.

You're going to hook pin 2 to +5, pin 3 to GND, and pin 4 to one of the analog in pins. The other pins, should be left unconnected.

Keep in mind, at this point, I'm just going from the datasheet and app note, if you have a few dollars to spare, I'd order the two sensors on either side of it: MPVZ5004 (4kPa) and MPX5050GP1 (50kPa) just in case the math is wrong for applied pressure.

While this wasn't it's purpose, you might find my recent blog post on interfacing with a pressure sensor useful in some way.

Thanks a million, I just ordered a MPVZ5010GW7U to do some testing and see if it will work for what I want to do.