ساخت سنسور دما توسط آردوینو (راهنمای ترمیستور)
ساخت سنسور دما توسط آردوینو (راهنمای جامع ترمیستور NTC)
آیا تا به حال فکر کردهاید که چگونه میتوانید دمای محیط اطراف خود را با استفاده از بردهای الکترونیکی اندازه بگیرید؟ اگر به تازگی وارد دنیای جذاب آردوینو شدهاید، یکی از بهترین پروژههای شروع، ساخت سنسور دما است.
در میان قطعات مختلف برای اندازهگیری دما، ترمیستور (Thermistor) یکی از ارزانترین، در دسترسترین و در عین حال کاربردیترین گزینههاست. در این مقاله آموزشی جامع، قصد داریم از صفر تا صد نحوه ساخت سنسور دما با آردوینو و ترمیستور NTC را به شما آموزش دهیم. پس با ما همراه باشید!
ترمیستور (Thermistor) چیست و چگونه کار میکند؟
کلمه ترمیستور (Thermistor) ترکیبی از دو واژه Thermal (حرارتی) و Resistor (مقاومت) است. در واقع، ترمیستور نوعی مقاومت است که مقدار مقاومت الکتریکی آن با تغییرات دما تغییر میکند.
ترمیستورها به دو دسته کلی تقسیم میشوند:
PTC (Positive Temperature Coefficient): با افزایش دما، مقاومت آنها افزایش مییابد.
NTC (Negative Temperature Coefficient): با افزایش دما، مقاومت آنها کاهش مییابد.
نکته: در اکثر پروژههای الکترونیکی و آموزشی آردوینو، از ترمیستور NTC استفاده میشود. ما نیز در این راهنما روی ترمیستور NTC تمرکز خواهیم کرد.
قطعات مورد نیاز برای ساخت سنسور دما
برای انجام این پروژه به قطعات زیر نیاز دارید که به راحتی از فروشگاههای قطعات الکترونیک قابل تهیه هستند:
برد آردوینو (Arduino Uno یا هر مدل دیگری مانند Nano یا Mega)
ترمیستور NTC (معمولاً مدل ۱۰ کیلو اهم یا 10K)
مقاومت ثابت ۱۰ کیلو اهم (برای ساخت مدار تقسیم مقاومتی)
برد بورد (Breadboard) و مقداری سیم جامپر
کابل USB برای اتصال آردوینو به کامپیوتر
مدار چطور بسته میشود؟ (شماتیک اتصال)
میکروکنترلر آردوینو (پینهای آنالوگ) مستقیماً نمیتواند مقاومت را اندازه بگیرد، بلکه میتواند ولتاژ را بخواند. به همین دلیل، ما از یک مدار ساده به نام مدار تقسیم مقاومتی (Voltage Divider) استفاده میکنیم تا تغییرات مقاومت ترمیستور را به تغییرات ولتاژ تبدیل کنیم.
مراحل سیمکشی:
یک پایه ترمیستور را به ولتاژ ۵ ولت (+5V) آردوینو وصل کنید.
پایه دیگر ترمیستور را به یکی از پینهای آنالوگ آردوینو (مثلاً A0) وصل کنید.
یک سر مقاومت ۱۰ کیلو اهمی را به همان پین A0 وصل کنید.
سر دیگر مقاومت ۱۰ کیلو اهمی را به زمین (GND) آردوینو متصل کنید.
با این اتصال، پین A0 ولتاژ متغیری را میخواند که با گرم یا سرد شدن ترمیستور تغییر میکند.
کدنویسی آردوینو (برنامهنویسی ترمیستور NTC)
برای تبدیل مقادیر خوانده شده از پین آنالوگ به درجه سانتیگراد، چند روش وجود دارد. دقیقترین روش استفاده از معادله استین-هارت (Steinhart-Hart Equation) است؛ اما برای شروع، ما از فرمول سادهتر و رایجتری استفاده میکنیم که کدی تمیز و قابل فهم به شما میدهد.
کد زیر را کپی کرده و در نرمافزار Arduino IDE خود آپلود کنید:
// تعریف پین آنالوگ متصل به مدار
const int THERMISTOR_PIN = A0;
// مقاومت سری با ترمیستور (۱۰ کیلو اهم)
const float SERIES_RESISTOR = 10000.0;
// مقاومت ترمیستور در دمای استاندارد ۲۵ درجه سانتیگراد (معمولاً 10K)
const float NOMINAL_RESISTANCE = 10000.0;
// دمای اسمی (25 درجه سانتیگراد به کلوین)
const float NOMINAL_TEMPERATURE = 25.0;
// ضریب بتا (Beta Coefficient) ترمیستور (از دیتاشیت قطعه خوانده میشود، معمولاً بین 3435 تا 3950)
const float BETA_COEFFICIENT = 3950.0;
void setup() {
// راهاندازی ارتباط سریال برای نمایش دما در مانیتور
Serial.begin(9600);
}
void loop() {
int reading = analogRead(THERMISTOR_PIN);
// تبدیل مقدار آنالوگ به مقاومت ترمیستور
float resistance = SERIES_RESISTOR * (1023.0 / (float)reading – 1.0);
// محاسبه دما با استفاده از فرمول ضریب بتا
float steinhart;
steinhart = resistance / NOMINAL_RESISTANCE; // (R/Ro)
steinhart = log(steinhart); // ln(R/Ro)
steinhart /= BETA_COEFFICIENT; // 1/B * ln(R/Ro)
steinhart += 1.0 / (NOMINAL_TEMPERATURE + 273.15); // + (1/To)
steinhart = 1.0 / steinhart; // معکوس کردن برای به دست آوردن دما به کلوین
steinhart -= 273.15; // تبدیل کلوین به درجه سانتیگراد
// چاپ نتیجه در Serial Monitor
Serial.print(“دما: “);
Serial.print(steinhart);
Serial.println(” درجه سانتی گراد”);
// تاخیر یک ثانیهای برای خوانش راحتتر
delay(1000);
}
تست و بررسی پروژه
پس از آپلود کد روی برد آردوینو، از منوی بالای نرمافزار Arduino IDE گزینه Serial Monitor (یا Serial Plotter) را با نرخ تبادل 9600 baud باز کنید.
شما باید اعداد مربوط به دمای محیط را به صورت لحظهای مشاهده کنید. برای تست صحت کارکرد سنسور، میتوانید خیلی آرام ترمیستور را با انگشتان دست خود لمس کنید؛ خواهید دید که مقدار دما بلافاصله شروع به افزایش میکند.
کاربردهای ساخت سنسور دما با آردوینو
این پروژه ساده پایهای برای ساخت بسیاری از سیستمهای کاربردی و هوشمند است، از جمله:
سیستم تهویه مطبوع هوشمند: روشن و خاموش کردن خودکار فن با توجه به دمای اتاق.
جوجهکشی: کنترل دقیق دمای داخل دستگاه جوجهکشی.
پایش دمای گلخانه: هشدار در صورت افزایش یا کاهش بیش از حد دما برای گیاهان.
محافظت از قطعات الکترونیکی: مانیتورینگ دمای هیتسینک یا موتورهای الکتریکی.
نکات طلایی برای افزایش دقت اندازهگیری
انتخاب ضریب بتا (Beta): مقدار BETA_COEFFICIENT در کد بالا ۳۹۵۰ تنظیم شده است. اگر از دقت دما مطمئن نیستید، به دیتاشیت (Datasheet) ترمیستور خود مراجعه کنید یا این مقدار را بین ۳۴۳۵ تا ۳۹۵۰ کالیبره کنید.
نویزگیری نرمافزاری: پینهای آنالوگ آردوینو ممکن است نویز داشته باشند. میتوانید با میانگینگیری از چند خوانش متوالی (Moving Average)، پایداری اعداد را افزایش دهید.
استفاده از کابلهای شیلددار: اگر ترمیستور با فاصله زیادی از برد آردوینو قرار دارد، حتماً از کابلهای شیلددار استفاده کنید تا نویز محیط روی دقت دما تاثیر نگذارد.
نتیجهگیری
ساخت سنسور دما توسط آردوینو و ترمیستور NTC یکی از پروژههای بسیار جذاب، اقتصادی و آموزشی است که به شما کمک میکند درک بهتری از مدارهای تقسیم مقاومتی، مبدل آنالوگ به دیجیتال (ADC) و برنامهنویسی امبدد پیدا کنید. با استفاده از این آموزش ساده، اکنون میتوانید پروژههای کنترل دما و اتوماسیون خود را آغاز کنید.
اگر در هر یک از مراحل ساخت سوالی داشتید، حتماً آن را در بخش نظرات با ما در میان بگذارید تا پاسخگوی شما باشیم!
