NTC Thermistor দিয়ে Temperature Measurement

যেকোনো ইলেকট্রনিক্স প্রোজেক্ট কিংবা Industrial Systems-এ কাজ করতে গেলে Accurate Temperature Monitoring তোমার জন্য অনেক বড় ফ্যাক্টর। ভাবো তো, 3D Printer-এ সঠিক Heat Maintain করা, Battery কে Overheating থেকে Protect করা, অথবা Power Electronics-এ Stable Performance নিশ্চিত করা—সবকিছুই নির্ভর করে Precise Temperature Control-এর ওপর।

এই কাজের জন্য বাজারে অনেক Temperature Sensor থাকলেও, NTC Thermistor 100K 3950 হতে পারে তোমার জন্য সবচেয়ে Trusted Choice। কারণ এটি Reliable, Cost Efficient, Small In Size এবং Ease to Interface


ntc-100k-Athermistor-with-arduino

ছোট সাইজ হলেও এই Sensor কিন্তু দারুণ Powerful। শুধু তাই নয় Temperature এর ক্ষুদ্র পরিবর্তনের সাথে সাথে দ্রুত Responsive, Highly Sensitive এবং Wide Temperature Range জুড়ে নির্ভরযোগ্যভাবে কাজ করে। তাই Electronics Project থেকে শুরু করে Industrial Machines—সব জায়গায়ই NTC Thermistor হয়ে উঠেছে Engineers আর Hobbyist দের কাছে সবচেয়ে সহজ আর Practical Solution। কারণ Accurate Temperature Sensing এর ক্ষেত্রে NTC Sensor-এর উপর চোখ বন্ধ করে ভরসা করা যায় ।

তবে আমরা অনেকেই এই Analog Device টিকে সঠিকভাবে Calibrate and Configuration করতে পারি না। তাই এই ব্লগে আমি তোমাকে দেখাবো কিভাবে NTC 100K 3950 সঠিকভাবে Interface করতে হয়।

NTC Thermistor 100K

NTC Thermistor 100K হলো Temperature Sensitive Resistor যা কাজ করে Negative Temperature Coefficient (NTC) প্রিন্সিপলের উপরে নির্ভর করে। অর্থাৎ Temperature যত বাড়তে থাকে, এর Resistance ততই কমতে থাকে।

ntc-thermistor-with-arduino-temp-resistance-ratio-animation

এখানে “100K” নাম্বারটি বোঝায় যে Thermistor এর Nominal Resistance হলো 100 kΩ at 25°C। এর ফলে এটি Real-Time Temperature Measurement-এ বেশ Highly Sensitive এবং Accurate হয়ে ওঠে। উদাহরণ হিসেবে, Temperature যদি 50°C হয়, তখন এর Resistance নেমে আসে প্রায় 26 kΩ-এ। আবার 100°C-তে পৌঁছালে সেটা কমে দাঁড়ায় প্রায় 5.9 kΩ। এই Predictable Resistance–Temperature Curve-এর কারণে এটিকে খুব সহজেই একটি Simple Voltage Divider Circuit ব্যবহার করে Microcontroller-এর সাথে Interface করা যায়।

ইন্টারফেইসিং

তোমার 100k ওহমের NTC Thermistor টি Arduino Uno-এর সাথে ইন্টারফেইসিং এর জন্য প্রথমেই কিছু Requirements ফুলফিল করতে হবে।

Requirements

  • Supporting Component Collection.
  • Arduino IDE Install.
Supporting Component Collection:

Arduino UNO ব্যবহার করে 100k ওহমের NTC Thermistor ইন্টারফেইসিং করতে প্রয়োজনীয় কম্পোনেন্টের তালিকা নিচের Component List নামক টেবিলে Purchase Link সহ সংযোজন করা হলো। (যদি আগে থেকেই তোমার সংগ্রহে কম্পোনেন্টগুলো থেকে থাকে, তাহলে তুমি এই অংশটি Skip করতে পারো।)

ntc-thermistor-with-arduino-component-list

Component List:

কম্পোনেন্টের নাম পরিমাণ
Arduino UNO R3 1
Breadboard 1
100K Ohm 1/4W Resistor 1
Male to Male Jumper Wire 3

 

Arduino IDE Install:

যদি তোমার কম্পিউটারে আগে থেকেই Arduino IDE ইনস্টল করা থাকে, তবে এই ধাপটি সহজেই Skip করতে পারো। আর যদি না থাকে, তাহলে Arduino IDE ডাউনলোড করার জন্য সরাসরি এই লিংকে ভিজিট করো।

তারপর এখানে Download বাটনটি চেপে Arduino IDE এর সর্বশেষ সংস্করণটি ডাউনলোড এবং ইনষ্টল করে নিতে হবে।

Connections

নিচের কানেকশন Diagram অনুযায়ী NTC Thermistor 100K এবং Arduino Uno এর মধ্যে সংযোগ গুলো দিতে হবে।

ntc-thermistor-with-arduino-circuit-diagram

বিঃদ্রঃ Voltage Divider Circuit অবশ্যই Diagram অনুযায়ী বানাতে হবে। মানে, Vcc (5V)R_FIXEDNTC ThermistorGND এই সিকোয়েন্সে Connection দিতে হবে। অন্যভাবে কানেক্ট করলে কোডিং অংশেও অবশ্যই প্রয়োজনীয় Change করতে হবে।

Calibration

ক্যালিব্রেশনের ক্ষেত্রে আমাদের দুইটি ভ্যালু খুব একুরেটলি Measure করে নিতে হবে, সেটি হলো R_FIXED অর্থাৎ আমরা যেই Resistor টি ব্যবহার করেছি তার Resistance এবং Arduino বোর্ডের Vcc এর ভোল্টেজ। এইখানে অনেকেই প্রশ্ন করবে যে এই ভ্যালুগুলো তো আমাদের জানা Resistance 100k ohm এবং Vcc 5V। কিন্তু Real Life এ এই ভ্যালু কিছুটা হেরফের হয়ে থাকে। তাই একচুয়াল ভ্যালুটি Measure করে নেয়া জরুরী। এবং আমরা Beta ভ্যালু হিসেবে B(25/50) = 3950 ব্যবহার করব। 

Resistance: 

arduino-rifixed-measurement

Voltage:

arduino-vcc-measurement

Coding

কোডটি কপি করে Arduino IDE তে কপি করে, পেস্ট করে ফেলো। তারপর Measured ভ্যালু অনুযায়ী কোডে Vcc এবং R_FIXED এর মান চেঞ্জ করে নাও এবং সঠিক বোর্ড ও COM Port সিলেক্ট করে কোডটি মাইক্রোকন্ট্রোলারে আপলোড করে ফেলো। 

বিঃদ্রঃ এখানে আমার ক্ষেত্রে R_FIXED = 98500 Ohm বা 98.5k Ohm এবং Vcc = 5.04V ছিলো তাই কোডে সেই ভ্যালু ব্যবহার করা হয়েছে। তাই নিজে কোডটি ব্যবহারের আগে অবশ্যই ভ্যালুগুলো নিজের ভ্যালু দিয়ে চেঞ্জ করে নিতে হবে।

 

const int analogPin = A0;

const float R_FIXED = 98500.0; // Change accoroding to the actual value of R_FIXED measured using DMM

const float BETA = 3950.0;

const float T0 = 298.15;       // 25°C in Kelvin

const float R0 = 100000.0;     // 100k thermistor at 25°C

const float Vcc = 5.04;        // Change accoroding to the actual value of 5V line

void setup() 
{

  Serial.begin(9600);

}

void loop() 
{

  int adcValue = analogRead(analogPin);

  float Vout = adcValue * (Vcc / 1023.0);  // Convert to voltage

  float R_thermistor = (R_FIXED * Vout) / (Vcc - Vout);

  // Beta formula

  float tempK = 1.0 / ( (1.0 / T0) + (1.0 / BETA) * log(R_thermistor / R0) );

  float tempC = tempK - 273.15;

  Serial.print("Temperature: ");

  Serial.print(tempC);

  Serial.println(" °C");

  delay(1000);

}

এখন Serial Monitor ওপেন করলেই তোমার কাঙ্খিত Temperature এর ভ্যালু সেলসিয়াস স্কেলে দেখতে পাবে। 

Output

Conclusion

NTC Thermistor 100K 3950 সেন্সর খুবই সহজলভ্য টেম্পারেচার-সেন্সর, যা বেশ নির্ভুল এবং স্ট্যাবল আউটপুট দিতে সক্ষম। যা Battery Management System, Smart Home Automation, 3D Printer Heat Control এবং Power Electronics Cooling System এর মত ডিভাইস গুলো বহুল মাত্রায় ব্যবহৃত হয়।

 

Arduino নিয়ে Beginner to Advance গাইডলাইন পেতে আরো পড়তে পারো………

  1. Arduino USB পাওয়ার সিক্রেট
  2. Arduino-তে Bootloader বার্ন করার সবচেয়ে সহজ পদ্ধতি
  3. কিভাবে নিজেই তৈরি করবে আরডুইনো বোর্ড?
  4. Arduino IDE কী? ইনস্টল, ব্যবহার ও প্রোগ্রামিং
  5. আরডুইনো’তে প্রথম প্রোগ্রামিং Hello World!

 

Mahbub Morshed Rifat
Mahbub Morshed Rifat

Engineer
TechShop Bangladesh

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.