3
\$\begingroup\$

I've been trying to use my arduino as a thermal anemometer based on the excellent and tiny IST FS5 "thermal mass flow sensor" - there is more information and a datasheet here - http://uk.farnell.com/ist/fs5-0-1l-195/sensor-flow-gas/dp/1778049. I've set up the circuit as recommended in the data sheet, albeit using a different op-amp and transistor (and excluding the calibration resistor) and it seems to work nicely. The only problem is the output is between 5 and 10V, and obviously the arduino likes something in the 0 - 5V range. I've used a simple voltage divider to scale the voltage between 2.5 and 5V, but it would be nice to use the full range... unfortunately my electronics knowledge is far too limited for this!

I've read some similar forum posts and tried to use a 5V voltage regulator and another opamp to produce something useful but failed miserably! I'd really appreciate it if anyone could give me some hints on how to use an op-amp to achieve this. I feel like it also must be possible to change the wheatstone bridge arrangment so as to produce this voltage range in the first place, but have no idea how!

Thanks all!

schematic here - http://dl.dropbox.com/u/7549930/aaSchematic1.png

snap here - http://dl.dropbox.com/u/7549930/arduino_anemometer.JPG

\$\endgroup\$
1
\$\begingroup\$

You can use a differential amplifier with the negative input V1 connected to a fixed voltage (12V or 5V) and V2 connected to the output of the circuit.

For this to work you need an opamp that can go rail-to-rail (not a 741).

If I were you I'd stick with the voltage divider, though, unless there's a definite need for the extra bit of precision.

\$\endgroup\$
1
  • \$\begingroup\$ If I were you, I'd get a dual or quad rail-to-rail opamp, and just add the two resistors to make the differential amplifier work. The 741 is old technology. How old? 1968. It's time to get new opamps! \$\endgroup\$ Aug 6 '10 at 22:04
0
\$\begingroup\$

You could float the grounds between the two. Basically you set the arduino ground to match the minimum output of the sensor (in this case 5V). I'm not sure how reliable the 5V out from the sensor is though. If there's any chance of it dropping below 5V, you want to avoid this method because you could end up sourcing current from the arduino input back to the sensor and damaging it. If you can handle the 2x lower resolution from the scaling, I'd say stick with what you have. That really depends on how accurate the sensor is in the first place though and the resolution of the input to the arduino (not great if I remember correctly).

If you need more resolution you can put the sensor into an A/D and then isolate it from the arduino (using an optocoupler or something similar) and then do what I said above, measuring at the 5V common mode voltage. Now the arduino would be able to read back (talking SPI, I2C or similar) the full range at a higher precision than if you just put it right into the arduino.

Good luck!

\$\endgroup\$
0
\$\begingroup\$

Thanks to Chris, starblue and reemrevnivek for your help! And to Tim Williams at the arduino forum. The differential amplifier works nicely, I used an LT1635 that was hanging about with a 7805 as my voltage reference (not sure how accurate / stable this is...). If you're interested in building this circuit you can see the schematic here: http://dl.dropbox.com/u/7549930/aaSchematic2-diffAmp.png. I'll also post the calibration data on the arduino playground in the next few weeks should anyone be interested.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy