SparkFun will be closed Nov 26th and 27th for the Thanksgiving holiday. Orders placed after 2:00pm MT on the 25th will ship out Monday the 30th.

Initial Force

Member Since: November 24, 2012

Country: United States


Building useless stuff since 2009 ;)

  • Just got done doing a 0.2C step test. Works pretty well with minimal fluctuation (I got a reading of 24.4C with every 3-5 reading set giving me 24.6C with a readout interval of 1 second). Change your map line to this using int values: TempReadingCelcious = map(TempReading, 50, 882, -400, 1250); TempReadingFahrenheit = (1.8 * TempReadingCelcious) + 320; Taking an additional set of average readings smooths out the fluctuation (I take 5 base readings, average, take 5 averages and average again).

    You will get 3 digit readings: 244 which equals 24.4C. Fahrenheit goes in 0.4F steps using this.

  • The sensor has an off set value of 100mV. -40C = 100mV; 25C = 750mV; 125C = 1750mV. Scroll down to my other comment explaining how to map on the arduino.

  • For you Arduino folks, here is how I got mine to work in regards to mapping the input voltage at a 5V referance: TempReadingCelcious = map(TempReading, 20, 358, -40, 125); Keep in mind that at a 5V referance you get steps 0 - 1023 at 4.8828mV steps (don’t use 4.9mV from the Arduino website for actual calculations… you get offset results very quickly). With 10mV steps of the sensor you will run into +-1 degree fluctuation and +-2degree Fahrenheit fluctuation.

    To fix this issue do the following: use analogReference(EXTERNAL) (Make sure you refer to this site so you do not damage your board: http://arduino.cc/en/Reference/AnalogReference ) and limit the reference voltage externally to about 2 volts by connecting the 3.3V out to the AREF pin through a 20k resistor (2 x 10k in series will do the trick). The reason you get about 2 volts (2.030769V +- resistor tolerance) as Reference is due to the internal 32k pull down resistor acting as a voltage divider. The formula is provided on the Arduino site for other voltage calculations.

    To calculate the new mapping we will do the following: 1. New 0 - 1023 resolution = 2030.769mV / 1024 steps = 1.98317mV per step; 2. Calculate your maximum and minimum mapping values. TM36 -40C = 100mV; 25C = 750mV; 125C = 1750mV; 100mV / 1.98317mV = 50.4243 so lets call it 50; 1750mV / 1.98317mV = 882.4256 so lets call it 882; 3. Plug in the new mapping values in the Arduino map line: TempReadingCelcious = map(TempReading, 50, 882, -40, 125);

    I hope this helps everyone that wants to use these for an Arduino project. I get consistent readings at full C steps by taking the average of 5 readings before mapping. I don’t own a thermometer so I used my AC thermostat as reference and both my Arduino and thermostat were reading the same temperature. In theory this should let you get down to 0.2C steps accurately but I haven’t tried this yet.

No public wish lists :(