Forgive me if I am completely wrong here or doing something wrong, I am very new to electronics in general.

I have a thermistor with 2 47ohm resistors taking the place of the 10k one (didn’t have a 10k one).

Using the code posted below, the serial output just reads -60ish, which is obviously not the temperature of my room in Celsius.

What am I doing wrong here?

``````#include <math.h>         //loads the more advanced math functions

void setup() {            //This function gets called when the Arduino starts
Serial.begin(9600);   //This code sets up the Serial port at 115200 baud rate
}

double Thermister(int RawADC) {  //Function to perform the fancy math of the Steinhart-Hart equation
double Temp;
Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp ))* Temp );
Temp = Temp - 273.15;              // Convert Kelvin to Celsius
return Temp;
}

void loop() {             //This function loops while the arduino is powered
int val;                //Create an integer variable
double temp;            //Variable to hold a temperature value
val=analogRead(0);      //Read the analog port 0 and store the value in val
temp=Thermister(val);   //Runs the fancy math on the raw analog value
Serial.println(temp);   //Print the value to the serial port
delay(1000);            //Wait one second before we do it again
}
``````

It won't work with 2x47 Ohm resistors replacing 10K (10,000) Ohms.

You could try to adjust the formula to the real value of the resistor (its the 10000).

`````` Temp = log(((10240000/RawADC) - 10000));
``````

jremington: It won't work with 2x47 Ohm resistors replacing 10K (10,000) Ohms.

jremington was right, I was using the wrong ones.

I am now using a 9k1 resistor, which is the closest thing I have, and seems to be giving better results (still not perfect though).

KyleBriggs: jremington was right, I was using the wrong ones.

I am now using a 9k1 resistor, which is the closest thing I have, and seems to be giving better results (still not perfect though).

I have a thermistor with 2 47ohm resistors taking the place of the 10k one (didn't have a 10k one).

Your code is written for a voltage divider of 10K along with the 10K thermistor. When I run you code on my setup it gives the correct temperature.

``````Temp = log(((10240000/RawADC) - 10000));
``````

This can be written in a way which shows the resistance of the voltage divider.

``````Temp = log((10000*(1024/RawADC) - 1));
``````

If you have change the 97 ohms to 9k ohms, use

``````Temp = log((9000*(1024/RawADC) - 1));
``````

Hi, Have you got a potentiometer of about 5K or 1K? Place it in series with the 9k1 and adjust it to give 10K, it will do until you get 10k.

Tom.... :)