June 06, 2010 by kgb I have three questions about it: 1) in the first project, we are powering the sensor with +5V. but how did you know that the output voltage has a range of +5V. Obviously, It shouldn't be above +5V. But why not less than that? according to the abs. max. ratings, the output voltage could be [-1.0 , +6] V. 2) If I power it with +10V, would the output voltage be on the same range [0,+5]V? 3) If we took the range of the output voltage to be [0,+5]V, according to the datasheet on the first page under features, it says it's a linear 10 mV/F. However, If you looked at the absolute temperature ratings, the range of temperature is [32, 212] so it's 180 degrees of span. => the average slope should be 5/180=27.78 mV. and not 10 mV. Plus, if we assumed its slope is 10 mV => the span of temperature is 500 degrees F which is far beyond the abs. max. ratings. how would you explain this? Thank You, kgb- The LM34, can act as a full-range sensor from -50F to 300F. It is a linearly proportional sensor. It outputs 10mV per 1F sensed, irregardless of supply voltage (unless the supply voltage is too low). We are not dealing with slope calculations. Irregardless of the input voltage (from 5 to 30V), the LM34 will not output more than -0.5 to +3V DC (or -50F to +300F). In the TempSensor project code, the sampleToFahrenheit() function uses 5000mV because that is maximum range of input voltage to the ADC. It's irrespective of the LM34. It just means that the tempsensor project could read temperatures up to 500F, if the LM34 supported output that high (but it doesn't). BM I see. But wouldn't this mean that when the input signal to the ADC is 0V => the temperature is = -50 degrees F and not 32 degrees F. kgb kgb- No, that's not quite right either :P Look at the Datasheet for the ATMEGA168. The ADC can't go negative. It's range is 0 to Vcc. So, if the LM34 is sending -500mV (-50F), the ADC won't understand it, and will just read 0. The ADC is expecting a positive input. The LM34 is linearly proportional. That means if it sends 0V, the temperature is 0F. Look at Figure 2 in your LM34 Datasheet. In order to get full range you need to wire it specifically with a resistor, and the calculation is given in the figure, for you to figure out what rating of resistor you need to use. BM