hey guys
hopefully somone here can help me out, i come to you defeated mostly haha !
I started developing a 6 channel thermo logger, that logs 6 values and a datestamp to SD card, while also sending the values over serial to live graph (real time monitoring check it out it rocks), so anyway after a while of playing around i got it all working, was pretty happy with myself, considering this was my first major project I starting with K-type thermal sensors an then decided on an RTD as i had seen some good results from thoose chips (no CJCs involved etc) in my initial development i used the Thermistor2 tutorials:
http://www.arduino.cc/playground/ComponentLib/Thermistor2
and i was using a bunch of crappy ceramic 3% 1k thermistor, all was well (1k pad resistor used)
so as i moved my development on I purchased some thin film pt100's (-50c -> 200c), im only concerned with -50c -> 150c, I'm happy to accept 0.19c steps (200/1024)
I had to get pretty deep into IEC 751 / DIN A to get a resistance table/check accuracy and work out my values for the Steinhart-Hart ABC values (seriously o_O hart-hart .. har har)
once i plucked them in things were going ok, however my returned value in C is 48-50 degrees C
so after all that hard work .. Failure, i checked the calculation and the reading im getting should be accurate
i sense it is a result of self-heating, as currently my circuit is basically a voltage divder with a pad resistor of 100 ohm
I am at a loss on how i should proceed i know the answer wont be to complex however my brain has shut down the new idea factory and searching pt100 input circuit on the ole google returns few to no results, my project seemed so close to completion but is now so very far away
5V 100 ohm Signal Wire PT 100 0V
[ + ] ---------- [VVVV] -----------------[A0]-------------[VV/VV] -------- [ - ]
float pad = 100; // balance/pad resistor value
float Thermistor(int RawADC) {
long Resistance;
float Temp; // Dual-Purpose variable to save space.
Resistance=((1024 * pad / RawADC) - pad);
Temp = log(Resistance); // Saving the Log(resistance) so not to calculate it 4 times later
Temp = 1 / (3.8529E-02 + (-9.6409E-03 * Temp) + (9.7575E-05 * Temp * Temp * Temp)); // SH-H Values Calculated from -10c, 10c & 30c
Temp = Temp - 273.15; // Convert Kelvin to Celsius
return Temp; // Return the Temperature
}
hopefully somone with a different insight/knowledge can help me out !
help me arduino-uno-kenobi's your my only hope
Luke