کنترل دما — معرفی انواع سنسور دما — آنچه باید بدانید
در اتوماسیون صنعتی، برای اندازهگیری و کنترل دما از سنسور دما استفاده میشود. سنسور دما با استفاده از مبدل اندازه دما را به یک کمیت الکتریکی تبدیل میکند و با کمک این سیگنال، کنترلهای لازم انجام میشود. در این آموزش، با سنسورهای دما و روشهای کنترل دما آشنا میشویم. همچنین، روش پیادهسازی کنترل دما در آردوینو را بررسی میکنیم.
سنسورهای دما
در این بخش، با مهمترین انواع سنسورهای دما آشنا میشویم.
ترموکوپل
«ترموکوپل» (Thermocouple) نوعی سنسور دما است که با اتصال دو فلز غیرمشابه در یک انتها ساخته میشود. انتهای متصل به عنوان اتصال گرم شناخته میشود.
انتهای دیگر این فلزات غیرمشابه را اتصال سرد مینامند. محل اتصال سرد در آخرین نقطه از ماده ترموکوپل تشکیل میشود. اگر بین محل اتصال گرم و اتصال سرد اختلاف دما وجود داشته باشد، ولتاژ اندکی ایجاد میشود. این ولتاژ به عنوان EMF (نیروی محرکه الکتریکی) شناخته میشود و میتوان آن را اندازهگیری کرد که در نشان دادن دما به ما کمک میکند.
برای آشنایی بیشتر با کنترل دما توسط ترموکوپل، پیشنهاد میکنیم به آموزش «ترموکوپل – از صفر تا صد» مراجعه کنید.
حسگر دمای مقاومتی (RTD)
RTD یک دستگاه سنجش دما است که مقاومت آن با دما تغییر میکند. این سنسور معمولاً از پلاتین ساخته میشود، اگرچه سنسورهای از نیکل یا مس نیز وجود دارند. RTDها میتوانند اشکال مختلفی مانند سیمپیچ یا فیلم نازک داشته باشند. برای اندازهگیری مقاومت RTD، یک جریان ثابت اعمال میشود، سپس ولتاژ حاصل اندازهگیری شده و مقاومت RTD تعیین میشود. RTDها مقاومت نسبتاً خطی در برابر منحنی دما در ناحیههای کاری خود نشان میدهند و هرگونه غیرخطی بودن بسیار قابل پیشبینی و تکرارپذیر است.
«بورد ارزیابی» (Evaluation Board) حسگر دمای مقاومتی PT100 برای اندازهگیری دما از RTD نصبشده روی سطح استفاده میکند. همچنین میتوان از یک PT100 خارجی (اکسترنال) دوسیمه، سهسیمه یا چهارسیمه برای اندازهگیری دما در نقاط دورتر استفاده کرد. RTDها با استفاده از یک منبع جریان ثابت بایاس شدهاند. برای کاهش «خودگرما» (Self-heat) به دلیل اتلاف توان، اندازه جریان تقریباً کم است. مدار نشان داده شده در شکل، منبع جریان ثابت است که از ولتاژ مرجع، یک تقویتکننده و یک ترانزیستور PNP استفاده میکند.
برای آشنایی بیشتر با کنترل دما با استفاده از RTD، پیشنهاد میکنیم مطلب «دماسنج مقاومتی – به زبان ساده» را مطالعه کنید.
ترمیستور
مشابه RTD، ترمیستور قطعهای برای اندازهگیری دما است که مقاومت آن با تغییر دما تغییر میکند. ترمیستورها از مواد نیمههادی ساخته شدهاند. مقاومت به همان روش RTD تعیین میشود، اما ترمیستورها یک مقاومت بسیار غیرخطی در برابر منحنی دما نشان میدهند. بنابراین، در محدوده عملکرد ترمیستورها میتوان تغییر مقاومت زیادی را برای یک تغییر دمای بسیار کوچک مشاهده کرد. این امر منجر به یک سنسور بسیار حساس و ایدهآل برای کاربردهایی میشود که در آنها «نقطه تنظیم» (Set-point) وجود دارد. برای آشنایی بیشتر با کنترل دما با کمک ترمیستور، به مطلب «ترمیستور چیست؟ — به زبان ساده» مراجعه کنید.
سنسورهای نیمههادی
این سنسورها در انواع مختلفی مانند سنسورهای خروجی ولتاژ، خروجی جریان، خروجی دیجیتال، سیلیکون خروجی مقاومت و سنسورهای دیودی طبقهبندی میشوند. سنسورهای دمای نیمههادی مدرن دقت و خاصیت خطی بالایی را در محدوده کاری حدود 55 درجه سانتیگراد تا 150 درجه سانتیگراد ارائه میدهند. تقویتکنندههای داخلی می توانند خروجی را در مقادیر مناسب مانند 10mV/°C مقیاسبندی کنند. این سنسورها همچنین در مدارهای جبرانسازی اتصال سرد برای ترموکوپلهای با درجه حرارت گسترده مفید هستند. جزئیات مختصری در مورد این نوع سنسور دما در ادامه بیان میشود.
طیف گستردهای از آیسیهای سنسور دما وجود دارد که برای گستردهترین محدوده ممکن جهت کنترل دما در دسترس هستند. این سنسورهای دمای سیلیکونی از چند جهت مهم با انواعی که در بالا گفتیم، تفاوت قابل توجهی دارند. اولین تفاوت محدوده دمای کاری است. یک IC سنسور دما میتواند در محدوده دمای IC نامی 55- درجه سانتیگراد تا 150+ درجه سانتیگراد کار کند. دومین تفاوت عمده در عملکرد است.
سنسور دمای سیلیکونی یک مدار مجتمع است و بنابراین میتواند شامل مدارهای پردازش سیگنال در همان بسته سنسور باشد. در نتیجه، نیازی به افزودن مدارهای جبرانساز برای سنسور دمای IC نیست. برخی از اینها مدارهای آنالوگ با خروجی ولتاژ یا خروجی جریان هستند. برخی دیگر مدارهای سنجش آنالوگ را با مقایسهکننده ولتاژ ترکیب میکنند تا توابع هشدار را ارائه دهند. برخی دیگر از آیسیهای حسگر، مدارهای سنجش آنالوگ را با رجیسترهای ورودی/خروجی و کنترل دیجیتال ترکیب میکنند و به هین دلیل، به یک گزینه ایدهآل برای سیستمهای مبتنی بر ریزپردازنده تبدیل میشوند.
سنسور خروجی دیجیتال معمولاً شامل یک سنسور دما، مبدل آنالوگ به دیجیتال (ADC)، یک رابط دیجیتال دوسیمه و رجیسترها برای کنترل عملکرد IC است. دما به طور مداوم اندازهگیری میشود و در هر زمان قابل خواندن است. در صورت تمایل، پردازنده میزبان میتواند به سنسور دستور دهد که کنترل دما را انجام دهد و اگر دما از حد برنامهریزی شده بیشتر باشد، یک پایه خروجی را به High (یا Low) تبدیل کند. دمای آستانه پایینتر را نیز میتوان برنامهریزی کرد و هنگامی که دما به زیر این آستانه کاهش یافت، هاست مطلع خواهد شد. بنابراین، از سنسور خروجی دیجیتال میتوان برای کنترل دمای قابل اعتماد در سیستمهای مبتنی بر ریزپردازنده استفاده کرد. شکل زیر یک سنسور دما را نشان میدهد.
سنسور دمای شکل بالا سه پایه دارد و حداکثر ولتاژ منبع تغذیه آن 5٫5 ولت است. این نوع سنسور متشکل از مادهای است که متناسب با دما کار میکند تا مقاومت را تغییر دهد. این تغییر مقاومت توسط مدار حس میشود و دما را محاسبه میکند. وقتی ولتاژ افزایش مییابد، دما نیز زیاد میشود. با استفاده از دیود میتوانیم این عملیات را مشاهده کنیم.
سنسورهای دما مستقیماً به ورودی ریزپردازنده متصل شده و در نتیجه قادر به ارتباط مستقیم و قابل اطمینان با ریزپردازندهها هستند. واحد حسگر میتواند بدون نیاز به مبدل آنالوگ به دیجیتال، با پردازندههای کمهزینه ارتباط مؤثری برقرار کند.
نمونهای از سنسور دما، سنسور LM35 است. سری LM35 آیسیهای سنسور دمای دقیقی هستند که ولتاژ خروجی آنها به طور خطی با دما متناسب است. سنسور LM35 در دمای 55- تا 120 درجه سانتیگراد کار میکند. سنسور دمای سانتیگراد پایه (۲ درجه سانتیگراد تا ۱۵۰ درجه سانتیگراد) در شکل زیر نشان داده شده است.
ویژگی های سنسور دمای LM35 به شرح زیر است:
- درجهبندی مستقیم برحسب درجه سانتیگراد
- پوشش درجه حرارت کامل از 55− درجه سانتیگراد تا 150+ درجه سانتیگراد
- مناسب برای کاربردهای از راه دور
- هزینه کم به دلیل «آرایش» (Trimming) سطح ویفر
- ولتاژ کاری 4 تا 30 ولت
- خودگرمایی کم
- غیرخطی بودن معمول
سنسور LM35 را میتوان به راحتی مانند سایر سنسورهای دمای مدار مجتمع به مدار وصل کرد. سنسور را میتوان روی یک سطح ثابت قرار داد و دمای آن در حدود 0٫01 درجه سانتیگراد از دمای سطح خواهد بود. فرض میشود که دمای هوای محیط تقریباً مشابه دمای سطح است. اگر دمای هوا بسیار بالاتر یا پایینتر از دمای سطح باشد، دمای واقعی LM35 در دمای متوسط بین دمای سطح و دمای هوا خواهد بود.
سنسورهای دما کاربردهای شناختهشدهای در کنترل دمای محیط و فرایند و همچنین در آزمون، اندازهگیری و ارتباطات دارند. دمای دیجیتال یک سنسور است که قرائت دمای 9 بیتی را فراهم میکند. سنسورهای دمای دیجیتال دقت بسیار خوبی دارند و برای خواندن از 0 درجه سانتیگراد تا 70 درجه سانتیگراد طراحی شدهاند و دستیابی به دقت 0٫5± درجه سانتیگراد را امکانپذیر میکنند.
سنسورهای دمای دیجیتال نیاز به اجزای اضافی مانند مبدل A/D را رفع میکنند و هنگام استفاده از ترمیستورها نیازی به کالیبره کردن اجزا یا سیستم در دمای مرجع خاص ندارند. مزایای یک سنسور دمای دیجیتال خروجی دقیق آن برحسب درجه سانتیگراد است. این سنسور هیچ بخش دیگری مانند مبدل آنالوگ به دیجیتال ندارد و استفاده از آن بسیار سادهتر از یک ترمیستور ساده است که با تغییر دما مقاومت غیرخطی ایجاد میکند.
یک نمونه از سنسور دمای دیجیتال DS1621 است که یک قرائت دمای 9 بیتی را فراهم میکند. ویژگیهای DS1621 به شرح زیر است:
- به اجزای خارجی نیاز ندارد.
- دامنه دما از 55- درجه سانتیگراد تا 125+ درجه سانتیگراد با دقت ۰٫۵ درجهای است.
- مقدار دما را به عنوان قرائت 9 بیتی ارائه میدهد.
- دامنه ولتاژ منبع تغذیه گسترده (2٫7 ولت تا 5٫5 ولت) دارد.
- در کمتر از یک ثانیه دما را به کلمه دیجیتالی تبدیل میکند.
- تنظیمات ترموستاتیک قابل تعریف توسط کاربر دارد.
- یک بسته DIP با ۸ پین است.
پینهای سنسور دمای دیجیتال DS1621 به صورت زیر هستند:
- SDA: ورودی/خروجی دادههای سریال 2 سیمه
- SCL: ساعت (کلاک) سریال 2 سیمه
- GND: زمین
- TOUT: سیگنال خروجی ترموستات
- A0: ورودی آدرس تراشه
- A1: ورودی آدرس تراشه
- A2: ورودی آدرس تراشه
- VDD: ولتاژ منبع تغذیه
هنگامی که دمای سنسور بیش از دمای تعریف شده توسط کاربر (HIGH) باشد، خروجی TOUT فعال میشود. خروجی فعال خواهد بود تا زمانی که دما به زیر دمای تعریف شده توسط کاربر (LOW) برسد. تنظیمات دمای تعریف شده توسط کاربر در حافظه «غیرفرار» (Non-volatile) ذخیره میشود، بنابراین ممکن است قبل از قرار دادن در سیستم برنامهریزی (پروگرام) شود. قرائت دما با صدور دستور READ TEMPERATURE در برنامهنویسی به صورت 9 بیتی ارائه میشود. از رابط سریال 2 سیمه برای ورودی تنظیمات دما و خروجی قرائت دما استفاده میشود.
روشهای کنترل دما
سه نوع کنترلکننده اساسی وجود دارد: خاموش/روشن، تناسبی و PID. بسته به سیستمی که باید کنترل شود، اپراتور قادر خواهد بود از یک روش برای کنترل فرایند استفاده کند. در ادامه، یک کنترلکننده نوع خاموش/روشن را طراحی میکنیم.
کنترل روشن/خاموش
کنترلکننده روشن/خاموش سادهترین شکل سیستم کنترل دما است. خروجی سیستم روشن یا خاموش است و حالت بینابینی ندارد. یک کنترلکننده خاموش/روشن (OFF/ON) فقط درصورتی که دما از نقطه تنظیم عبور کند، خروجی را تغییر میدهد.
برای کنترل گرما، وقتی دما پایینتر از نقطه تنظیم باشد کنترلکننده روشن و اگر دما بالای نقطه تنظیم، باشد، خاموش است. از آنجا که دما برای تغییر حالت خروجی از نقطه تنظیم عبور میکند، دمای فرایند به طور مداوم در حال چرخش است و از پایین نقطه تنظیم به بالا و و بالعکس تغییر میکند. در مواردی این چرخه به سرعت اتفاق میافتد و برای جلوگیری از آسیب رساندن به رلهها و شیرها، دیفرانسیل (اختلاف) خاموش یا «هیسترزیس» به عملکرد کنترلکننده اضافه میشود. این دیفرانسیل مستلزم آن است که دما قبل از خاموش یا روشن شدن خروجی مقدار مشخصی از مقدار تنظیم شده فراتر رود. اگر چرخه در بالا و پایین نقطه تنظیم خیلی سریع اتفاق بیفتد، دیفرانسیل خاموش از «چترینگ» یا ایجاد سوئیچهای مداوم سریع جلوگیری میکند.
کنترل روشن/خاموش معمولاً در مواردی که کنترل دقیق لازم نباشد، در سیستمهایی که نمیتوانند انرژی را به طور مداوم روشن و خاموش کنند، جایی که جرم سیستم به حدی زیاد است که درجه حرارت آهسته تغییر میکند یا برای هشدار دما استفاده میشود. یک نوع خاص از کنترل خاموش/روشن که برای هشدار استفاده میشود، «کنترلکننده محدود» (Limit Controller) است. این کنترلکننده از یک رله قفلشونده استفاده میکند که باید به صورت دستی تنظیم شود و برای خاموش کردن فرایند با رسیدن به درجه حرارت خاصی استفاده میشود.
کنترل تناسبی
کنترلکنندههای تناسبی برای از بین بردن چرخه مرتبط با کنترل خاموش/روشن طراحی شدهاند. یک کنترلکننده تناسبی، با نزدیک شدن دما به نقطه تنظیم، متوسط توان وارد شده به هیتر را کاهش میدهد. این امر موجب کند شدن تغییر دمای هیتر میشود، به گونهای که نسبت به نقطه تنظیم فراجهش نخواهد داشت، بلکه به نقطه تنظیم نزدیک میشود و درجه حرارت پایداری را حفظ میکند. این عمل تناسب را میتوان با خاموش و روشن کردن خروجی برای فواصل زمانی کوتاه انجام داد.
این «متناسبسازی زمان» نسبت زمان «روشن» به «خاموش» برای کنترل دما را تغییر میدهد. عمل تناسب در یک «باند متناسب» حول دمای نقطه تنظیم رخ میدهد. خارج از این باند، کنترلکننده به عنوان یک واحد خاموش/روشن کار میکند، خروجی یا کاملاً روشن (زیر باند) یا کاملاً خاموش (بالای باند) است. با این حال، در داخل باند، خروجی به نسبت اختلاف اندازهگیری از نقطه تنظیم، خاموش و روشن میشود. در نقطه تنظیم (نقطه میانی باند تناسبی)، نسبت خروجی خاموش به روشن، یک به یک است. یعنی زمان روشن و زمان خاموش برابر هستند. اگر دما از نقطه تنظیم فاصله بیشتری داشته باشد، زمان خاموش و روشن متناسب با اختلاف دما تغییر خواهد کرد. اگر دما کمتر از نقطه تنظیم باشد، خروجی زمان بیشتری روشن میشود. اگر درجه حرارت خیلی زیاد باشد، خروجی مدت زمان بیشتری خاموش خواهد ماند.
کنترل PID
کنترلکننده سوم تناسبی-انتگرالگیر-مشتقگیر یا PID است. این کنترلکننده کنترل تناسبی را با دو تنظیم اضافه ترکیب میکند، که به کنترلکننده کمک میکند تا به طور خودکار تغییرات سیستم را جبران کند. این تنظیمات (انتگرالگیر و مشتقگیر) در واحدهای مبتنی بر زمان بیان میشوند. جملات تناسب، انتگرال و مشتق باید به طور جداگانه با استفاده از آزمون و خطا در یک سیستم خاص تنظیم شوند.
این کنترل دقیقترین و پایدارترین کنترل را از بین سه نوع کنترلکننده فراهم میکند و بهترین گزینه در سیستمهایی که جرم نسبتاً کمی دارند و سیستمهایی که به سرعت در مقابل تغییرات انرژی اضافه شده به فرایند واکنش نشان میدهند، است. توصیه میشود در سیستمهایی که بار اغلب تغییر میکند، انتظار میرود کنترلکننده به دلیل تغییرات مکرر در تنظیمات، به طور خودکار جبران شود.
برای آشنایی بیشتر با کنترلکننده PID، به آموزش «کنترل کننده PID — مفاهیم و ساختارها (+ دانلود فیلم آموزش رایگان)» مراجعه کنید.
کنترل دما با استفاده از آردوینو
در این بخش، روش پیادهسازی کنترلکننده خاموش/روشن دما را بیان میکنیم. این موارد را بررسی خواهیم کرد:
- چگونه میتوان کلیدها و LCD را به آردوینو متصل کرد؟
- چگونه ورودی کلید را بگیریم؟
- چگونه سنسور دما LM35 را بخوانیم؟
- کنترل دستگاه طبق هر نقطه تنظیمشده چگونه است؟
اجزای مورد نیاز مدار به شرح زیر هستند:
- آردوینو اونو (Arduino Uno)
- صفحه نمایش السیدی 2×16
- کلیدها
- رله
- سه عدد مقاومت ۱ کیلواهم
- ترانزیستور BC548
- LED ها
- سنسور دما LM35
مدار با استفاده Arduino Uno و از سنسور دمای LM35 و سایر اجزا ساخته شده است. از یک السیدی 2×16 برای نمایش دمای فعلی و نقاط تنظیم استفاده میکنیم. سنسور LM35 متناسب با دمایی که به ورودی آنالوگ A0 آردوینو داده میشود، خروجی آنالوگ را تولید میکند. سپس با نقاط تنظیم مقایسه میشود. اگر دما بیشتر باشد، بنابراین هیتر گرمایی مانند بخاری را که به خروجی رله متصل است خاموش میکنیم. اگر دما کمتر باشد، رله (بخاری) را روشن میکنیم. ما همچنین وضعیت بخاری را در LED و LCD به صورت خاموش نشان میدهیم. برای تنظیم نقطه تنظیم دما از دو کلید لمسی استفاده میشود.
برنامه با استفاده از کتابخانه "LiquidCrystal" نوشته شده است و دارای ماژولهای مختلف، راهاندازی و حلقه است. در تنظیمات، تمام اتصالات IO، صفحه کلید و LCD را مقداردهی اولیه میکنیم. در حلقه اصلی ورودیهای نقطه تنظیم را میگیریم و دائماً دما را اندازهگیری میکنیم و آن را با نقاط تنظیم مقایسه میکنیم. اگر اندازهگیری بیش از نقطه تنظیم باشد، هیتر را خاموش میکنیم، در غیر این صورت، آن را روشن میکنیم. میتوانید مقداری هیسترزیس اضافه کنید.
1/*
2 circuits4you.com
3 Digital Temperature Controller
4*/
5#include <LiquidCrystal.h>
6
7// initialize the library with the numbers of the interface pins
8LiquidCrystal lcd(9, 8, 7, 6, 5, 4);
9
10const int LED_RED=10; //Red LED
11const int LED_GREEN=11; //Green LED
12const int RELAY=12; //Lock Relay or motor
13
14//Key connections with arduino
15const int up_key=3;
16const int down_key=2;
17
18int SetPoint=30;
19//=================================================================
20// SETUP
21//=================================================================
22void setup(){
23 pinMode(LED_RED,OUTPUT);
24 pinMode(LED_GREEN,OUTPUT);
25 pinMode(RELAY,OUTPUT);
26 pinMode(up_key,INPUT);
27 pinMode(down_key,INPUT);
28
29 //Pull up for setpoint keys
30 digitalWrite(up_key,HIGH);
31 digitalWrite(down_key,HIGH);
32
33 // set up the LCD's number of columns and rows:
34 lcd.begin(16, 2);
35 // Print a message to the LCD.
36 lcd.print("circuits4you.com");
37 lcd.setCursor(0,1); //Move coursor to second Line
38 lcd.print("Temp. Controller");
39 digitalWrite(LED_GREEN,HIGH); //Green LED Off
40 digitalWrite(LED_RED,LOW); //Red LED On
41 digitalWrite(RELAY,LOW); //Turn off Relay
42 delay(2000);
43}
44//=================================================================
45// LOOP
46//=================================================================
47void loop(){
48 double Temperature = ((5.0/1024.0) * analogRead(A0)) * 100; //10mV per degree 0.01V/C. Scalling
49
50 lcd.setCursor(0,0);
51 lcd.print("Temperature:"); //Do not display entered keys
52 lcd.print(Temperature);
53
54//Get user input for setpoints
55 if(digitalRead(down_key)==LOW)
56 {
57 if(SetPoint>0)
58 {
59 SetPoint--;
60 }
61 }
62 if(digitalRead(up_key)==LOW)
63 {
64 if(SetPoint<150)
65 {
66 SetPoint++;
67 }
68 }
69
70//Display Set point on LCD
71 lcd.setCursor(0,1);
72 lcd.print("Set Point:");
73 lcd.print(SetPoint);
74 lcd.print("C ");
75
76//Check Temperature is in limit
77if(Temperature > SetPoint)
78{
79 digitalWrite(RELAY,LOW); //Turn off heater
80 digitalWrite(LED_RED,LOW);
81 digitalWrite(LED_GREEN,HIGH); //Turn on Green LED
82}
83else
84{
85 digitalWrite(RELAY,HIGH); //Turn on heater
86 digitalWrite(LED_GREEN,LOW);
87 digitalWrite(LED_RED,HIGH); //Turn on RED LED
88}
89
90 delay(100); //Update at every 100mSeconds
91}
92//=================================================================
معرفی فیلم آموزش برد آردوینو (Arduino) با انجام پروژه های عملی
برای آشنایی بیشتر با آردوینو پیشنهاد میکنیم به فیلم آموزش برد آردوینو (Arduino) با انجام پروژه های عملی «فرادرس» مراجعه کنید که مدت زمان آن ۱۹ ساعت و ۱۰ دقیقه است.
در درس اول این آموزش که در ۹ درس تدوین شده، معرفی اجمالی با برد آردوینو (Arduino) بیان شده است. در درس دوم، واحد ارتباط سریال در آردوینو مورد بحث قرار گرفته است. موضوع درس سوم واحد PWM و ADC در آردوینو است.
واحد وقفه و SPI در آردوینو نیز در درسهای چهارم و پنجم معرفی شدهاند. به واحد TWI و I2C در آردوینو نیز در درس ششم پرداخته شده است. حافظه EEPROM نیز موضوع درس هفتم است. آرایهها و رشتهها در آردوینو از مباحث مهمی هستند که در درس هشتم گنجانده شدهاند و در نایت، برنامهنویسی پیشرفته برد آردوینو در درس نهم آموزش داده شده است.
- برای مشاهده فیلم آموزش برد آردوینو (Arduino) با انجام پروژه های عملی + اینجا کلیک کنید.