سنسورهای دما یکی از مهم ترین و پرکابردترین سنسورها در پروژه های مختلف الکترونیکی به شمار می روند. به کمک سنسورهای دما می توان پارامتر حیاتی دما را سنجید. به عنوان مثال در سیستم های تهویه مطبوع، این سنسورهای دما هستند که با گزارش وضعیت دما فعلی به کنترلرگر، دمای محیط را کنترل می کنند. به عنوان مثالی دیگر، در رایانه ها این سنسورهای دما هستند که در صورت افزایش بیش از حد دمای المان های حساس نظیر CPU، فرمان خاموش شدن آن را صادر می کنند. یا در مثال دیگر، نقش سنسور دما به عنوان یک المان حساس در سیستم خنک سازی خودرو بر هیچ کسی پوشیده نیست. سنسورهای دما انواع مختلفی دارند؛ اما آن ها را می توان در دو دسته بندی آنالوگ و دیجیتال قرار داد. یکی از سنسورهای آنالوگ پرکاربرد، سنسورهای نوع RTD هستند. این سنسورها از یک مقاومت حساس به دما تشکیل شده اند؛ به طوریکه با تغییرات دما، مقاومت سنسور تغییر خواهد یافت. جهت راه اندازی و کار با این سنسورها کتابخانه تحت آردوینو توسعه یافته که روال کار را بسیار تسریع می بخشد. در این آموزش قصد داریم تا به تحلیل و بررسی کتابخانه مخصوص سنسور RTD بپردازیم. در ادامه این آموزش، در ادامه با مرجع تخصصی آردوینو به زبان فارسی ، دیجی اسپارک همراه باشید.
سنسور RTD تعریف و کاربرد
پیش از آنکه به ادامه بحث بپردازیم، به طور مختصر به بررسی سنسور RTD خواهیم پرداخت. همانطور که گفته شد، سنسور دمای RTD بر حسب تغییرات مقاومت الکتریکی نسبت به دما، خروجی خود را تولید می کند. سنسورهای RTD بر مبنای تغییرات مقاومت فلزها در برابر دما عمل می کنند. زمانیکه فلزها افزایش دما را تجربه کنند، میزان مقاومت الکتریکی آن ها نیز افزایش می یابد. از این ویژگی می توان به عنوان المان سنجش دما استفاده نمود.
جهت راه اندازی و کار با سنسورهای دما، میکروکننترلر و یا برد پردازشی باید حتما از ADC پشتیبانی نماید. از آنجاییکه تغییرات دمایی سبب تغییرات رسانایی مقاومت ها می شوند، لذا با گذراندن جریان ثابت و اندازه گیری ولتاژ دو سر مقاومت RTD می توان ولتاژ و در نهایت میزان مقاومت را اندازه گیری نمود. البته سنسورهای RTD دارای یک جدول بوده که در آن مقاومت اندازه گیری شده معادل با دمای محیط است. جهت اندازه گیری دما باید مقاومت اندازه گیری شده را در جدول جست و جو کرد تا به مقدار دما برسیم. در این آموزش به کمک کتابخانه توسعه داده شده، این مورد را اجرا خواهیم نمود. به عبارت دیگر به کمک کتابخانه کلیه روال اندازه گیری مقاومت و محاسبه دما توسط کتابخانه صورت خواهد گرفت. به همین منظور در قسمت بعد به نحوه نصب کتابخانه خواهیم پرداخت.
نصب کتابخانه ACI_10K_an.h
به منظور استفاده از کتابخانه، ابتدا می بایست آن را نصب کنیم. در این قسمت به نصب کتابخانه با جستجو در مخازن آردوینو می پردازیم. به همین منظور، ابتدا در نرم افزار آردوینو بر روی گزینه Tools و سپس Manage Libraries را کلیک کنید. پس از کلیک بر روی این گزینه، با تصویر زیر رو به می شوید. این منو کتابخانه های در دسترس را به شما نشان می دهد. شما نیز می توانید با جستجوی نام کتابخانه مورد نظر خود، آن را در مخازن آردوینو یافته و سپس نصب کنید.
مطابق فلش مشخص شده در تصویر فوق، در کادر جستجو عبارت ACI_10K_an.h را تایپ کنید. پس از چند لحظه با تصویر زیر رو به رو می شوید. در این مرحله، کتابخانه را با کلیک بر روی گزینه install، نصب کنید.
الزامات و نکات فنی کتابخانه ACI_10K_an.h
پس از نصب کتابخانه سنسور RTD، به الزامات و نکات فنی کتابخانه می پردازیم. توجه داشته باشید که جهت راه اندازی و کار با این کتابخانه، برد شما می بایست حتما از واحد ADC بهره مند باشد. از آنجاییکه این سنسور از واحد ADC جهت ارسال داده استفاده می کند، بنابراین در این کتابخانه امکان تعیین ولتاژ رفرنس و دقت ADC تعبیه شده است. به عنوان مثال شما می توانید ولتاژ رفرنس بردهای ESP8266 که برابر با ۱٫۱ ولت است را انتخاب کنید؛ یا اینکه ولتاژ رفرنس ۵ ولت را برای بردهای آردوینو مبتنی برا تراشه AVR انتخاب نمایید.
تحلیل و بررسی توابع کلیدی کتابخانه ACI_10K_an.h
پس از بررسی الزامات نوبت به تحلیل و بررسی توابع کلیدی و کاربردی کتابخانه می رسد. جدول زیر لیست توابع را به همراه شرح، نمایش می دهد.
شرح | ورودی ها | تابع |
این تابع در حقیقت تابع سازنده کلاس کتابخانه است. | بدون ورودی | Aci_10K() |
این تابع هم همانند تابع فوق سازنده کلاس است. اما به کمک این تابع می توانید ولتاژ مرجع و رزولوشن ADC را تعیین کنید. | ورودی vRef جهت تعیین ولتاژ رفرنس
ورودی RESO جهت تعیین دقت |
Aci_10K(float vRef, int RESO) |
به کمک این تابع می توانید دما را بخوانید. دمای خوانده شده در خروجی تابع به صورت اعشاری قرار می گیرد. | ورودی جهت تعیین شماره پایه آنالوگ ورودی | float getTemp(int reading) |
پس از آشنایی با توابع کتابخانه، نوبت به اجرای یک نمونه برنامه می رسد. قسمت بعد را به این موضوع اختصاص می دهیم.
اجرای یک نمونه برنامه
در قسمت پیشین توابع کتابخانه را مشاهده نمودیم. در این قسمت قصد داریم تا با اجرای یک برنامه نحوه عملکرد توابع را مشاهده کنیم. برنامه زیر دما را خوانده و در سریال مانیتور قرار می دهد.
#include <ACI_10K_an.h> void setup() { Serial.begin(9600); } void loop() { Aci_10K an10k; //ایجاد یک شی از کتلاس کتابخانه Serial.print("temp: "); Serial.println(an10k.getTemp(analogRead(A0))); //خواندن دما از پایه شماره ۰ آنالوگ delay(1000); }
لوازم مورد نیاز
سنسور دمای RTD
جمع بندی
از آنجاییکه سنسورهای دما یکی از مهم ترین و پرکابردترین ابزارها در طراحی سیستم ها به شمار می روند، این آموزش را به تحلیل و بررسی کتابخانه سنسور RTD اختصاص دادیم. سنسور دمای RTD یک سنسور دمای مبتنی بر تغییرات دمایی مقاومت است. به کمک این سنسور می توان از تطریق تغییرات ولتاژ با گذر جریان ثابت از سنسور، دما را اندازه گیری نمود. جهت راه اندازی و کار با این سنسور کتابخانه تحت آردوینو توسعه یافته است. بدین ترتیب در زمان کم و در فرمی استاندارد، می توان به راه اندازی سنسور RTD اقدام نمود. در این آموزش به تحلیل و بررسی کتابخانه سنسور RTD پرداختیم. ابتدای آموزش به بررسی ویژگی ها و قابلیت های سنسور پرداختیم. در ادامه نصب کتابخانه و الزامات فنی آن مورد بررسی قرار گرفت. پس از این مرحله، به تحلیل و بررسی توابع کلیدی پرداختیم. در نهایت با ارایه یک برنامه، نحوه استفاده از توابع در برنامه ها مشاهده گردید.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.