it says to multiply by 100, not 10, but I when multiplying by 100 I get a number like: 290, so I multiply by 10 to get a more realistic degree value,

Well, that's just wrong (really, really wrong). I mean, if the formula doesn't agree with your expectations, just change the formula???

Well, let's try to do a little better. Instead of using your reading, I'll use mine. (You didn't tell me your reading, so I couldn't use it even if I wanted to.) Instead of faking the calculations to try to get the "right answer," I'll calculate an "answer" and see if I think it's "right." (See Footnote.)

Here's the drill:

The voltage out of the LM335 is approximately equal to hundredths of a degree K. (That's Kelvin, not Celsius)

Now, if your Arduino +5 Voltage is exactly 5.0, here's the way to convert the 10-bit ADC reading (a long int) to Volts:

```
float aVcc, adcVolts degreesK, degreesC, degreesF;
aVcc = 5.0; // If you have a voltmeter put the actual value here
adcVolts = adcReading * aVcc / 1024.0
degreesK = 100.0 * adcVolts;
degreesC = degreesK - 273.15;
// I'll let you fill in the Fahrenheit calculation if you are interested.
```

Feel free to print out all intermediate calculated values.

Then, you can consolidate the code into a single expression if it suits your fancy.

My example, sitting in my comfortable room:

10-bit ADC reading = 598 (decimal)

If I assume aVcc = 5.0 volts, this means that adcVolts is equal to 2.92 volts. This is 292 degrees K, which is 18.84 C (65.9 F). Hmmm...It feels a little warmer than that to me. I mean, the LM335 has an error rating of a couple of degrees, but I think it's even a little warmer than that.

Now, I happen to have a digital voltmeter that I got at a garage sale a few years ago, and when I measure the "+5" volt supply on my Arduino Duemilanove, I get 5.10 Volts (2% higher than nominal, but easily within the allowable tolerance of 5%). Now, 2% doesn't sound too bad, right? After all the LM335 device itself is only specified to be accurate to a couple of degrees.

However...

If I plug this value of aVcc into the formula, I find that the ADC reading of 598 actually represents 2.98 Volts (2% higher than 2.92 so that's consistent). This means that I am measuring 298 degrees K, which is about 24.68 C. (76.4 F) Ahhh. Just right. (Note that I can measure voltage on the analog input pin with my meter, and, in fact, I see 2.98 Volts, so the Arduino is apparently working very well---at least for this reading.)

Note that, since the voltage is proportional to degrees *Kelvin*, it turns out that a 2% error in the reference voltage makes a difference of something like 10 degrees F in the calculated value at room temperature.

Bottom line: If you don't have a voltmeter, use 5.0 in the formula, but accept the possibility of errors on the order of ten (or maybe more) degrees F.

Regards,

Dave

**Footnote:** One of the first things we learn in lab,and what our lab instructors try to discourage: "If you know the right answer, you can get the right answer." If you can't fake the data, then fake the calculations. Just turn it in on time and maybe the poor overworked TA won't notice the chicanery. Then, some day you can get a job at an institute that gets lots of grants (big bucks) for tracking data that proves something about global warming and... (Oh, man! Don't get me started!)