I am just getting started with my Uno via the Vilros Ultimate Starter Kit. I've done all of the sample circuits and played around with a few other things.
Today I connected the Ethernet shield with the intention of building a temperature logger. I am finding that the output I get from the included TMP36 temperature sensor is much different with the Ethernet shield installed.
The kit's sample circuit #7 for the temperature sensor connects the sensor directly to 5V and GND and the sensor output to A0. The loop code (compressed a bit for pasting here) looks like this:
float voltage, degreesC, degreesF; voltage = analogRead(temperaturePin) * 0.004882814; degreesC = (voltage - 0.5) * 100.0; degreesF = degreesC * (9.0/5.0) + 32.0; // Write to serial; omitting for brevity delay(1000);
Without the Ethernet shield installed, a typical output I get from this looks like:
voltage: 0.81 deg C: 30.57 deg F: 87.02
That might be a little high but it feels close enough for what I'm going for at the moment (I don't have a reliable thermometer with me, but it's a warm day here). It's close enough, and is stable across readings.
With the shield installed, the exact same circuit and sketch outputs this:
voltage: 0.96 deg C: 46.19 deg F: 115.14
It's still very stable across readings but obviously way off. What could cause this and how can I fix it? I am not expecting the sensor to be perfectly accurate but the major discrepancy I'm seeing makes this unworkable.