3
\$\begingroup\$

Extending the question: Scaling Voltage for Arduino Analog In, Beyond Voltage Dividers

Making a simple digital thermometer. Ideally, my circuit will only need a 3.3v supply. The sampling will be by a PIC 8 bit ADC. I'm hoping to achieve full scale accuracy by scaling up the output voltage from the thermistor potential divider, using an easily obtainable, cheap op-amps or alternative.

Perhaps someone could recommend low voltage single rail op-amps, (not op-amp circuits) or any really clever transistor circuits or similar that only use one or two cheap components to get better accuracy measuring a thermistor in certain ranges than just a potential divider fed straight to the ADC.

Thanks

Edit: Thanks for the response on the LT1677, however I'm having real trouble finding a retailer for one-offs! It's a little bit on the pricey side as well, so I'm still looking for alternatives.

I'm thinking of adding a 5v rail to my scaling circuit, so I can use LM2904N instead and get approx full accuracy, it's a cheap dual with full swing on the lower rail and just 1.5v less than full swing on the upper rail. Not ideal tho.

\$\endgroup\$
  • 1
    \$\begingroup\$ Can't you try to get a sample from a distri? \$\endgroup\$ – stevenvh Jun 11 '11 at 12:43
  • \$\begingroup\$ @Stevenvh , I'd want an awkward number of them, probably around 30 after the prototype but it's certainly worth a go anyway! Sorry, hadn't explained myself very well! \$\endgroup\$ – CL22 Jun 11 '11 at 12:48
  • \$\begingroup\$ DigiKey has the LT1677, but you're right, they're rather pricey :-( \$\endgroup\$ – stevenvh Jun 11 '11 at 13:14
  • \$\begingroup\$ Once again I'm beyond thrilled with the answers! Thank you everyone!! \$\endgroup\$ – CL22 Jun 12 '11 at 14:42
3
\$\begingroup\$

Here are a number of inexpensive op-amps that might work as well. All of them are rail-to-rail output and have an input range including the negative rail. Some of these aren't rail-to-rail in, but with a common-mode range within about 1V of the upper rail, it's fine for an application where you are amplifying the input.

  • LMV822 (RRO)
  • OPA348 (RRIO)
  • OPA336 (RRO, 0.125mV offset, 100kHz GBW which is small but probably fine for thermistors)
  • MCP6001 (RRIO)
  • MCP601 (RRO, 2mV offset, 2.8MHz GBW)

edit: p.s. your question had inspired me to write an article about thermistor signal conditioning in general; maybe you'll find it helpful.

\$\endgroup\$
3
\$\begingroup\$

I used the LT1677 on several projects. I've used it to increase gain from sensors for a PIC ADC input. Its voltage range is 3-18 volts, and has rail to rail I/O.

\$\endgroup\$
  • \$\begingroup\$ sorry, looks like we posted simultaneously :-) \$\endgroup\$ – stevenvh Jun 11 '11 at 12:18
  • 1
    \$\begingroup\$ @stevenvh: looks like that's extra points for the LT1677 then. \$\endgroup\$ – Federico Russo Jun 11 '11 at 12:39
  • \$\begingroup\$ @stevenvh - No problem. Great minds think alike :-) \$\endgroup\$ – SteveR Jun 11 '11 at 14:19
3
\$\begingroup\$

You can make a non-inverting amplifier with for instance a Linear LT1677, which is a single supply rail-to-rail opamp, operating from 3V.

edit
National's LPV511 is also low voltage (starts from 2.7V) and rail-to-rail in. Output goes to 100mV from the rails. Also much cheaper than the LT1677.

\$\endgroup\$
3
\$\begingroup\$

The best thing to do for accuracy is not use a simple divider followed by an amplifier.

Rather, use a wheatstone bridge, assuming this temperature sensor is a thermistor.

The benefits you get are that that a wheatstone bridge is good at "canceling out" the non-linearities of thermistors as well as minimizing the loading effects of the measurement circuit.

So you end up with a circuit like: enter image description here

R3 is the thermistor.

Choice of resistor values will vary with the thermistor and the range that your intending to measure.

The op amp in the circuit can be any of those mentioned by other answers.

\$\endgroup\$
  • \$\begingroup\$ Thanks! I would never have come across this, although I'm wondering if I should still just cancel out non-linearities in software, since it'll undergo processing probably on a PC afterwards. I would have awarded best answer otherwise! \$\endgroup\$ – CL22 Jun 12 '11 at 14:39
  • \$\begingroup\$ @Jodes I wouldn't say you want to 'just' cancel out non-linearities in software. The problem with only dealing with it in the digital domain is that in areas where the response curve is steep you will have limited resolution. For example the difference from 0C -> 1C could be 1mV while the difference from 99C-100C could be 100mV. Now if your ADC doesn't have the resolution to detect the 1mV change and you want +- 1C accuracy your out of luck no matter what you do in software. \$\endgroup\$ – Mark Jun 12 '11 at 19:35
  • \$\begingroup\$ @Jodes The wheatstone bridge isn't going to perfectly solve the linearity problem on its own, especially for larger temperature ranges. When you choose resistor values you'll effectively be choosing a temperature range and a center point to offset the non-linearity of the thermistor. What the wheatstone bridge will do is limit the non-linearity to a confined non-linearity error, which often can be small, +-0.5C or something. If thats all the accuracy you need your done. If not you can further correct for this in software. This also constrains the resolution needed in the ADC. \$\endgroup\$ – Mark Jun 12 '11 at 19:40
  • \$\begingroup\$ @Mark: please explain why you say a Wheatstone bridge improves temperature sensing with thermistors. Wheatstone bridges are great in strain gauge applications (all 4 elements are strain gauges) and other cases where you are trying to sense small changes in resistance. But for a thermistor, I see no value in using a Wheatstone bridge in this way. Over any significant range of temperature, the amplifier gain can't be much larger than 1.0 in which case there's really no point: you're just adding more components that add tolerance errors. \$\endgroup\$ – Jason S Jun 18 '11 at 16:25
  • \$\begingroup\$ ...with one exception: if you need to sense temperature over a narrow range (e.g. 20 C - 40 C), it could help produce a range of outputs that spans the full range of an ADC. \$\endgroup\$ – Jason S Jun 18 '11 at 16:29
2
\$\begingroup\$

Instead of amplifying the signal, you could try using a high resolution external A/D. Sigma-delta A/Ds are slow but have many bits, and are not too expensive. You can use the extra bits so that you still get your desired 8 bits of resolution accross a large dynamic range of signal. These A/Ds are usually available with a simple SPI or IIC interface that is easy to drive from the PIC, even if the PIC doesn't have the SPI or IIC hardware built in.

\$\endgroup\$
  • \$\begingroup\$ Speed shouldn't be an issue as temperature doesn't change fast. Wouldn't a dual-slope ADC be even better, since the integrating character will provide better noise suppression? \$\endgroup\$ – stevenvh Jun 11 '11 at 14:21
  • \$\begingroup\$ Dual slope would work too. Actually a delta-sigma A/D is inherently integrating also. The exact A/D type wasn't the point of my answer, but rather that with a high enough resolution A/D (of whatever type), you don't need to prescale the analog signal. \$\endgroup\$ – Olin Lathrop Jun 11 '11 at 23:52
1
\$\begingroup\$

This is going old school, but since it's a thermistor (variable resistance) you could probably try making an integrating A/D converter. You would need a fairly stable capacitor and a precision resistor for calibration (do one calibration cycle for each read). It's more involved than I could explain here, but I've been thinking of doing this for a few thermistors I have.

The nice thing is that by extending the integration time you get more resolution.

Google single slope integrating ADC for some design ideas.

\$\endgroup\$

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.