Arduino + LM35DZ

Another question for people with much more electronics knowledge:
Is it possible to use an op-amp (I currently have at my disposal an LM358) to add a +1V to the signal acquired from an LM35DZ?

In the full range set-up, the LM35DZ(centigrade calibrated) has a voltage output that goes from -0.55V to 1.5V. Since arduino can't measure the negative value, I thot I could use a +1V offset on the value measured.


Sure - try this site

It's good to hear I have a shot at this. I will start reading / testing using the informations from the link you provided.

Thank you,

I put the formula into excel to make it easy to play with.
Using figure 2 with 10K resistors, one can put V2 at 2V, then with V1 from -1.5 to 1.5 Vout is positive all the time. Range is scaled by half (-1.5 to 1.5 is 3V, with 10K resisters output is 0.25 to 1.75, a 1.5V range), but you can then add in gain resistors as in figure 1 to bring the range back to 100% of input swing again.

I think you might be misunderstanding the data sheet. You can only get a negative voltage out of this chip if you have a negative power rail. Otherwise it is only negative with respect to the GND pin. If you make this pin say half the supply rail then your negative supply can be the arduino ground and you don't have to do any messing about with op amps.

Most of the time if you just feed it with 0v on the ground and 5v on the Vs. There is no way this can produce a negative voltage out.

Oh... that might be right.. you see, I use 5V from Arduino and GND. I get values between 0 and 1 V and temps between 0 and 100 degrees.
With the help of 2 diodes (1N914) and a 18K resistor I am able to measure full range (-55 to 150 degrees).

But here is this weird little thing... I used the schematic in the datasheet, but instead of 2 1N914 I used 2 1N4148 (at the electronics shop they told me they were equivalent) and I get 1.24 volts at room temperature (about 22 degrees...). This means I get a +0.94V because of the resistor and diodes. Is this how it should behave when I go for the full range ?

To get the temp. value I used this formula:
Temp = (100*analogRead(SensePin))/204.6