My analog input 0 is crazy with the ethernet shield

Hello,

I’m using a TMP36 to mesure temperature. It comes from the “Sparkfun inventor’s kit”.

It’s working well when I connect it to the analog 0 on the arduino. But If the arduino ethernet shield and plug it again to the analog 0, I have “random” values. It’s too low and there is a lot of noise.

Is my ethernet shield crappy? Or am I missing something?

Thanks!

Look at: http://shieldlist.org/arduino/ethernet-v5

A0 and A1 are used for the SD write-protect and card-detect.

… Both are pulled high by 10k resistors on the Ethernet shield. These pins therefore cannot be used for analog input with the shield unless they are bent back or clipped off before inserting the shield into the arduino.

I think this is the root cause of your problem. Use the pins from A2 on, and your on the right side.

Best regards,

Mario.

It changes everything!

Do you know how precise it should be ?

while taking mesure for 5 minutes, I have 8°F difference between the lowest and highest mesure. Is it a lot? or is it withing the sensor/arduino error level range?

Thanks for your help and the website!

8°F over 5 minutes is to much if the temperature itself has not changed. I’m using the TMP36 too (from Sparkfun Danger Shield). Connected with a 10k resistor between “+” and 5V I’ve got reliable results on the “data pin”.

The TMP36 produces 10mV per 1°C plus an offset of 0.5V on the output pin. A temperatur of 25°C (77°F) should give you a value of 153 (0.75V) on the analogRead() function.

Did you tried different pins with the same strange results?

Best regards,

Mario.