The picture shows a AD22103 sensor on a prototype board for a room temperature control. The sensor is intended to measure air temperature, not the board temperature. There was originally a ADT7410 SOIC-8 sensor on this board, which was unfortunately great at measuring just the board temperature. The microcontroller is a PIC24FJ256GA702, and the output current from the Vout of the AD sensor has been measured at 0.15mADC and 0.05mAAC (noise), much lower than the max recommended in the datasheet of 1mA.
However the AD is overreading the air temperature by a large margin. The recorded temperature climbs by about 3 degrees in 2 hours from the board being switched on, for the same air temperature.
Here are some options what the problem could be-
a. The part itself has a fault, though not sure what that would be as it is correctly transmitting its temperature.
b. The two power leads are taking heat from the board up into the part.
c. The part is disappating heat inside itself caused by 3.3V PSU noise.
d. The part is picking up radient heat from the board. (The cardboard pad is there to reduce this.)
e. The air near the board itself is warming up and warming up the part. Howver the AD seems to be hotter than the cardboard pad.
I did a test with AD22103s on a breadboard, with a 1mA output load, and they read the air temp correctly.
What I am asking is any comments what the cause could be? From the IR view it is a bit inconclusive. I wondered if anyone out there has met this problem and what they did about it. I am planing to redesign the board with a cut-out and narrow tracks to reduce the effects that could exist but would like to check there is nothing I have not thought of.
Thanks for any comments on this.
Edits 2022-12-28
Referring to the original AD22103 as ADA, and another, new AD22103 as ADB.
ADA refitted with wires so outside the box, in the ambient air. Distance of sensor outside box (to its edge) 10mm. Wire 0.6/1 (single strand 0.6mm dia Cu).
ADA climbed 6 degrees in 2 hours.
ADB, on a breadboard, about 75mm from box edge.
ADB kept temp fine- tracked air reference sensor to within 0.2 deg over 2 hours. This is a useful check that the reading software is Ok.
ADA connected directly to PSU, measure voltage to check temp. Sensor on free wires on the bench,
Temp stable with no load.
Then added 1K load to ground from output.
Temp stable with load. (This was a surprise.)
So, I thought, the solution would be to take ADB, use long wires to the sensor is outside the box, solder it on, and that would be it.
And it wasn't.
ADB on board - Version 2, sensor mounted 0.6/1 wire as before, sensor 50mm from box edge.
In 30 min, temp climbed 2 degrees away from reference. I checked the voltages as the PSU comes from the board itself, the same to 1mV. Voltage out of the ADB had increased corresponding the the temperature rise.
I know the PCB is warming up, but is it possible to conduct enough energy down the wires to heat up the package this much? Maybe I should, as was suggested, put a piece of copper on the sensor and see the effect. I will try that next. Maybe that is why the breadboard and the bench tests worked- there was nothing warming them up at all.
Here is a picture of the sensor for this test.
Doing the calc- 10mW of power would be enough to shift the temp by 2 degrees. I am not sure how to calculate the temp the board would need to reach to deliver that much power down the three wires. The PCB is at about 29 degrees.
Edit 2022-12-28 part 2
I ran the test again, this time with a small 15mm x 12mm piece of single sided track board.
There is still a heating effect but it is much lower.
Before board added = approx 3.6 deg/hr After board added = approx 1 deg/hr - also a steady state is reached approx 1 deg above ambient.
From all of this there are now a number of solutions.
Since this is a room temp control, we are interesting in the highest accuracy in maybe a 20 to 26 deg region. We don't need super-accuracy at 16 degrees or 30 degrees, for example.
The control and the sensor will always be in the same temp ambient air.
The power dissipation of the main board does not change for the operating modes.
So it would be possible to correct in software for any steady state situation. The difference would be the time to get there. But these controls are normally on 24/7, so that is probably not an issue.
If it was, one approach would be to have a second sensor at the power end of the board. The actual ambient could be calculated from the two readings. The advantage of that is two board mounted sensors could be used inside the box, one on a separate board to provide the thermal isolation.
So here are some options I can look at - A Make the wire long enough so the steady state is short enough and the accuracy good enough. B Add software correction based on measurement from the sensor for a steady-state condition. C Have two sensors, both onboard, and use the two readings to calculate ambient (this removes the steady-state requirement as well as the external sensor).
Many thanks for all your input, I wish I could mark more than one as the answer. It showed me that even a single electronic part can required a lot of thought.