Full width home advertisement

Arduino project

Raspberry project

Post Page Advertisement [Top]

This project shows how to measure temperature by Arduino and NTC Thermistor sensor
Hardware need:
1. Arduino Pro Mini
2. Voltage regulator 5VDC
3. NTC Thermistor sensor






Step 1. Understand NTC Thermistor sensor
As in Wikipedia, NTC Thermistor sensor will change resistance reversly acording to temperature (temperature increase, resistance decrease and vice versa)
In this project, we take a NTC sensor from an old air-conditioner.
How to find characteristic of the sensor? Easy, just put it in ice-water -> record resistance, our case is 10kOhm. Next, put it in boiling water -> record resistance, our case is 1kOhm

Step 2. Make a circuit with Arduino

NTC sensor is R1 in the circuit, voltage will feed to Analog input A0 -> by measuring voltage at A0, we can calculate temperature at NTC R1

Voltage reference AREF (Vref) is connected to VCC -> this will help the circuit measuring more stable (measuring result not depend on Vref, but only R1 NTC sensor)
Let's see detail, votage at A0 is:
Voltage mesured by Arduino code:

Because Vref is Vcc, so ADCreading is depended only on R1 NTC sensor

Step 3. Code works for Arduino

unsigned int ADCValue;
double temp;

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

void loop() {
  ADCValue = analogRead(0);
  temp = 0.00007*ADCValue*ADCValue-0.1849*ADCValue+103.02;
  
  //Serial.print(ADCValue); //un-comment for calibration
  //Serial.print("---"); //un-comment for calibration
  Serial.print(temp);
  Serial.println();
  delay(500);
}


Step 4. Calibration (scale temperature)
Resistance of NTC sensor is 2-order curve with temperature, so we need to know at least 3 points (resistance, temperature) for calibration

To get those 3 points for this project, put NTC sensor to ice-water, boiling water, and to normal environment
Record ADCValue via COM screen along with temperature value record by another Thermo-meter.
I use thermocouple SATO PC-9255

Input recorded value to excel, make 2-order curve

Then, input value to Arduino code -> final temperature is shown exactly as Thermo-meter
void loop() {
  ADCValue = analogRead(0);
  temp = 0.00007*ADCValue*ADCValue-0.1849*ADCValue+103.02;

Step 5. Communicate with Visual Studio C++
Following video will show how to make Visual Studio program to show value from Arduino


1 comment:

  1. I really like reading your blog and waiting for your next update. I appreciate all the work you put into this site. Thanks for sharing this post.

    Circular Chart Recorder

    ReplyDelete

Bottom Ad [Post Page]