Thermistor Reading Accidentally used 3.3V

I ran an experiment and accidentally used 3.3V supply for the thermistor reading when it should have been 5V. Thus all my readings are wrong.

Is there a way to convert the readings I got so they are correct as if I used the 5V supply?

Not exactly programming I guess, I got the readings in Excel now. Thanks for help!

We need to see the schematic!

So post them?

That would have been sensible, haha.

The schematic is this one, but x3 so I can measure the temperature of 3 items. Also I accidentally put the red wire on 3V3
Image from Make an Arduino Temperature Sensor (Thermistor Tutorial)

The code is also from that site, but modified. I simply monitored the results on serial monitor and then copied them to excel.

int ThermistorPin0 = 0;
int Vo0;

int ThermistorPin1 = 1;
int Vo1;

int ThermistorPin2 = 2;
int Vo2;

float R1 = 10000;
float logR2, R2, T, Tc ;
float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;

int timeStamp = 0;

void setup() {
Serial.begin(9600);
}

void loop() {

  Vo0 = analogRead(ThermistorPin0);
  R2 = R1 * (1023.0 / (float)Vo0 - 1.0);
  logR2 = log(R2);
  T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
  Tc = T - 273.15;
 

  Serial.print(timeStamp); 
  Serial.print(","); 
  Serial.print(Tc);
  Serial.print("C,");   
  

  Vo1 = analogRead(ThermistorPin1);
  R2 = R1 * (1023.0 / (float)Vo1 - 1.0);
  logR2 = log(R2);
  T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
  Tc = T - 273.15;


  //Serial.print("Probe 2 Temperature: "); 
    Serial.print(Tc);
  Serial.print("C,");
   

  Vo2 = analogRead(ThermistorPin2);
  R2 = R1 * (1023.0 / (float)Vo2 - 1.0);
  logR2 = log(R2);
  T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
  Tc = T - 273.15;


 // Serial.print("Probe 3 Temperature: "); 
    Serial.print(Tc);
  Serial.println("C"); 

  timeStamp = timeStamp + 10;

  delay(600000);
}

Temps are here in a CSV file.
Temps.zip (621 Bytes)

OK

You are not setting a reference for measurements
so the Uno will have used the DEFAULT reference which is Vcc (ABOUT 5V)

This is entirely appropriate for the "proper" circuit as the measurement is potentiometric.

(explanation here)

As you only have the "Tc" values, and the conversion from Vo0 to Tc is not linear you will need to use excel to back calculate the Vo values, then multiply by 5.0 / 3.3 and reapply the conversion to get the "correct" readings.

if you need more precise values you may be able to use the arduino to measure Vcc - provided you are using the same - original - supply.

Thanks, I agree it should be possible, but it is the reversing the calculation I am unable to do. Math is not my strong area and I just copied that code from the site. I have no idea what those 3 floating point numbers are doing!

If anyone can make a formula to fix my mistake it would be much appreciated :smile:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.