سنسورها یا همان حسگرها! یکی از مهم ترین ابزارها در پروژه های مختلف به شمار می روند. به کمک سنسورها می توان پارامترهای فیزیکی نظیر دما، فشار، رطوبت، میزان نور، میزان ضربه و…. را اندازه گیری نمود. در حقیقت سنسورها را می توان به عنوان مبدل های پارامتر فیزیکی به ولتاژ یا سیگنال دانست. یکی از مهم ترین و پرکاربردترین نوع سنسورها، سنسورهای دما هستند. سنسورهای دما با تبدیل دمای محیط به سیگنال، کاربر را از میزان دما آگاه می سازند. سنسورهای دما همانند سایر سنسورها، در دو نوع آنالوگ و دیجیتال در بازار یافت می شوند. در نوع آنالوگ، خروجی سنسور به صورت ولتاژ یا پالس، متناسب با دمای محیط است. در مدل دیجیتال، خروجی سنسور تحت پروتکل تعریف شده سازنده و یا پروتکل های ارتباطی استاندارد نظیر SPI، I2C و… ساخته می شوند.
در این آموزش قصد داریم تا به ساخت یک دماسنج دیجیتال بپردازیم. برای این مورد، از سنسور دمای NTC استفاده خواهیم کرد. سنسور دمای NTC یک سنسور دمای با خروجی آنالوگ است. این سنسور که در صنایع و پروژه های مختلفی کاربرد دارد، دارای خروجی آنالوگ است. از این سنسور در صنعت خودرو جهت اندازه گیری دمای آب خودرو، سیستم های پکیج دیواری جهت سنجش دمای محیط و آب و… استفاده می شود. در این آموزش ما به نحوه کار با این سنسور و در نهایت ساخت دماسنج دیجیتال با قابلیت نمایش دمای محیط بر روی نمایشگر سگمنت، خواهیم پرداخت. در ادامه ساخت دماسنج دیجیتال با ترمیستور با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
دماسنج دیجیتال با ترمیستور NTC 10K
سنسورهای دما یکی از مهم ترین و پرکابردترین ابزارها در پروژه های مختلف به شمار می روند. یکی از سنسورهای پرکابرد بازار، سنسورهای NTC هستند. این سنسورها با خروجی آنالوگ، تنها دو پایه دارند. درون این سنسورها یک مقاومت حساس به دما یا RTD قرار گرفته است. مکانیزم عملکردی این سنسور به این صورت بوده که با تغییر دمای محیط، مقاومت درون سنسور هم تغییر خواهد یافت.
سنسور دمای NTC از یک مقاومت حساس به دما تشکیل شده است. این مقاومت با افزایش دما، کاه یافته و با کاهش دما نیز، مقدار آن افزایش خواهد یافت. جهت راه اندازی و کار با این سنسور، می بایست یک مقاومت به صورت سری با آن قرار گیرد. با قرارگیری مقاومت سری با سنسور، یک تقسیم مقاومتی توسط مقاومت سری و مقاومت درونی سنسور ایجاد می گردد. با اندازه گیری ولتاژ تقسیم مقاومتی، میزان مقاومت درونی سنسور اندازه گیری می شود. سپس با مراجعه به Look up table سنسور، مقدار دما از روی مقاومت خوانده خواهد شد. البته جهت خواندن این مقدار، از واحد ADC آردوینو استفاده می کنیم. برد آردوینو یک برد پردازشی بوده که در قسمت بعد به آن می پردازیم.
برد آردوینو Uno
در سیستم نمایش دیجیتال دما، یک برد پردازشی حرف اول را می زند! شما حتی اگر دقیق ترین سنسورهای آلمانی را هم در اختیار داشته باشید، تا زمانیکه پروژه شما پردازنده نداشته باشد، انگار که هیچ ندارید!!! در این آموزش جهت پردزاش داده های سنسور و نمایش روی نمایشگر، از برد آردوینو UNO استفاده می کنیم. برد آردوینو UNO را که دیگر همه می شناسیم! یک برد پرکابرد که در واقع آن را می توان برد توسعه برای میکروکنترلر ATMEGA328P دانست. این برد روال برنامه نویسی و توسعه پروژه را سرعت داده و لذت بخش می کند.
در پروژه دماسنج دیجیتال با ترمیستور و برد آردوینو به کمک رابط ADC خود مقدار ولتاژ تقسیم مقاومتی سنسور و مقاومت را می خواند. سپس با به دست آوردن مقدار مقاومت سنسور، به کمک کتابخانه مربوط به سنسور میزان دمای محیط را اندازه گیری می کند. در نهایت با اندازه گیری دما، داده را روی نمایشگر نمایش می دهد. در این آموزش از یک نمایشگر بسیار جذاب و کاربردی استفاده کرده ایم. قسمت بعد این نمایشگر را معرفی می کنیم.
نمایشگر سون سگمنت TM1637
انتخاب نمایشگر در پروژه امیری بسیار مهم است.؛ چراکه نمایشگر واسطی بین کاربر و دستگاه به شمار می رود. در میان نمایشگرهای مختلف موجود در بازار، نمایشگرهای سون سگمنت از محبوبیت بسیاری برخوردارند. ین نمایشگرها به دلیل قیمت مناسب و نور پس زمنیه عالی، در پروژه های مختلف مورد بهره قرار می گیرند. اما این نمایشگرها جهت ارتباط با میکروکنترلر، پایه های زیادی را اشغال می کنند؛ این در حالیست که نمایشگرهای سون سگمنت با تراشه TM1637، با ۴ دیجیت تنها به دو پایه جهت ارتباط با میکروکنترلر نیاز دارند.
ماژول نمایشگر سون سگمنت TM1637 از رابط سریال I2C استفاده می نماید. به همین علت جهت ارتباط با برد آردوینو تنها به دو پایه نیاز دارد. جهت راه اندازی و کار با این نمایشگر نیز کتابخانه تحت آردوینو توسعه یافته که روال کار را بسیار ساده می کند. در قسمت های بعد نحوه نصب این کتابخانه را به همراه کتابخانه سنسور، خواهیم دید.
نصب کتابخانه های مورد نیاز
همانطور که اطلاع دارید، کتابخانه ها یکی از ابزارهای کلیدی و کاربردی در برنامه نویسی به شمار می روند. به کمک این ابزار، می توانیم توابع نوشته شده در فایلهایی به نام کتابخانه ذخیره کرده و سپس در پروژه های متعدد از آن استفاده کنیم. همانطور که پیشتر گفته شد، برای راه اندازی و کار با ماژول TM1637 کتابخانه توسعه داده شده است. برای استفاده از این کتابخانه، ابتدا باید آن را نصب کنیم. برای نصب کتابخانه در محیط آردویینو، ابتدا مطابق تصویر زیر بر روی گزینه Tools و سپس Manage Libraries کلیک کنید.
پس از کلیک بر روی گزینه Manage Libraries، در صفحه ظاهر شده، در قسمت کادر جستجو، عبارت TM1637 را جستجو نموده و کتابخانه مشخص شده در تصویر زیر را نصب نمایید.
در ادامه راه اندازی پروژه دماسنج دیجیتال با ترمیستور می بایست کتابخانه سنسور NTC را نصب کنیم. برای نصب این کتابخانه کافیست در منوی جستجوی کتابخانه ها، عبارت ACI_10K_an را تایپ کرده و مطابق تصویر زیر کتابخانه را نصب نمایید.
شماتیک و اتصالات دماسنج دیجیتال با ترمیستور
پس از نصب کتابخانه های مورد نیاز، نوبت به اولین قدم اجرای پروژه دماسنج دیجیتال با ترمیستور می رسد. تصویر زیر فرم کلی اتصالات پروژه را نمایش می دهد. ابتدا به این تصویر با دقت نگاه کنید.
مطابق تصویر فوق، اتصالات را به روشی که در ادامه توضیح داده شده، اجرا کنید.
اتصالات سنسور NTC
- اتصال یک پایه سنسور دما به ۵ ولت
- اتصال پایه دیگر سنسور دما به یک پایه مقاومت ۱۰ کیلو
- اتصال پایه دیگر مقاومت ۱۰ کیلو به زمین
- اتصال محل تلاقی پایه سنسور و مقاومت ۱۰ کیلو به پایه A0 آردوینو
توجه: سنسور دما مستقل از پلاریته است؛ به عبارت دیگر در اتصال پایه ها فرقی نخواهند داشت.
اتصالات نمایشگر و آردوینو
- اتصال پایه VCC نمایشگر به ۵ ولت آردوینو
- اتصال پایه GND نمایشگر به GND آردوینو
- اتصال پایه CLK نمایشگر به پایه ۴ آردوینو
- اتصال پایه DIO نمایشگر به پایه ۵ آردوینو
کدهای پروژه NTC آردوینو
پس از برقراری اتصالات، نوبت به کدهای پروژه دماسنج دیجیتال با ترمیستور NTC آردوینو می رسد. این کدها برای برد آردوینو توسعه یافته که می توانید روی برد خود آپلود کنید. برای دانلود کدهای پروژه، لطفا روی این لینک کلیک نمایید.
#include "SevenSegmentTM1637.h" //کتابخانه نمایشگر #include <ACI_10K_an.h> //کتابخانه سنسور const byte PIN_CLK = 4; // تعیین پایه شماره ۴ آردوینو برای کلاک نمایشگر const byte PIN_DIO = 5; // تعیین پایه شمارهه ۵ آردوینو برای تبادل داده با نمایشگر SevenSegmentTM1637 display(PIN_CLK, PIN_DIO); //ایجاد شی از کلاس کتابخانه نمایشگر Aci_10K an10k; void setup() { Serial.begin(9600); // تعیین باودریت display.begin(); //راه اندزای نمایشگر display.setBacklight(100); // تنظیم نور پس زمینه نمایشگر display.print("INIT"); //نمایش این عبارت جهت تست روی نمایشگر delay(1000); }; // run loop (forever) void loop() { int temp=an10k.getTemp(analogRead(0)); //خوانده دما از روی پایه آنالوگ شماره صفر به کمک تابع getTemp display.print(temp); //نمایش دما روی نمایشگر delay(1500); display.clear(); //پاک کردن دما برای نمایش در دفعات بعدی };
اجرای پروژه دماسنج دیجیتال با ترمیستور
پس از آپلود کدها، نوبت به اجرای پروژه NTC آردوینو می رسد. با اجرای پروژه میزان دما روی نمایشگر با توجه به تصویر زیر، نمایش داده می شود.
با گرفتن دست خود دور سنسور، مشاهده ی کنید که دما افزایش می یابد. همچنین با قرارگیری یک تکه یخ در مجاورت سنسور، دما کاهش خواهد یافت.
توجه: در پروژه دماسنج دیجیتال با ترمیستور ما از سنسور معمولی NTC_10K استفاده کردیم، در صورت تمایل شما می توانید از نوع ضد آب آن با کابل استفاده نمایید.
لوازم مورد نیاز
لینک خرید برد آردوینو UNO، کلیک کنید
لینک خرید سنسور دمای NTC_10K معمولی، کلیک کنید
لینک خرید سنسور دمای NTC_10K ضد آب، کلیک کنید
جمع بندی
سنسورهای دما یکی از سنسورهای پرکاربرد در صنایع و پروژه های مختلف به شمار می روند. یکی از مهم ترین نوع این سنسورها، سنسور NTC است. این سنسور که از یک مقاومت حساس به دما تشکیل شده، در پروژه های بسیاری مورد استفاده قرار می گیرد. در این آموزش به راه اندازی و کار با سنسور NTC پرداختیم. ابتدا آموزش را با معرفی این سنسور و ویژگی های آن، شروع کردیم. سپس در ادامه، از آنجاییکه قصد ساخت دماسنج دیجیتال با این سنسور را داریم، به معرفی برد آردوینو و نمایشگر پرداختیم. در نهایت پس از ارایه کد و شماتیک، پروژه اجرای شد و دمای محیط را بر روی نمایشگر مشاهده نمودیم.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
سلام من کتابخانه ها را نصب کردم وکدها رادر برنامه ریختم وبرنامه لود نشد
سلام
چه مشکلی پیش آمد؟ چه خطاهایی وجود آمده ؟
سلام verify رو که میزنم این ارور رو میده
compilation error :exit status 1
سلام
خطا دارید، لطفا کل خطاها را کپی کرده و در کامنت بعدی قرار دهید.
سلام پروژه رو اپلود کردم منتها با افزایش دما دما به جای افزایش کاهش پیدا میکنه . سنسورم ان تی سیه و سیم ها و اتصالات درسته
سلام
قطعا جایی اشکال دارد.شاید سنسور ptc باشد!،
سلام دوست عزیز توو توضیحات نوشته شده یه پایه سنسور به خط مثبت و یه پایه مقاومت به منفی این وسط یا توضیحات اشتباه بوده یا توو کد مشکل هست ولی بدون دستکاری کد میتونید سنسور رو به خط منفی و مقاومت رو به خط مثبت وصل کنید مشکل برطرف میشه
سلام
از تذکر و لطف شما ممنونم
همون طور که تاکید کردم سنسورم ان تی سیه، با یه کد دیگه درست کار میکنه ولی با این کد معکوس عمل میکنه .
خیلی عجیب شد!
اجازه دهید بیشتر بررسی کنم
جناب لطفا اگر مشکل رو بررسی کردین اطلاع بدین ، چون این کتابخانه که معرفی کردید خیلی مختصر و جمع و جوره و اگر این تبرادش حل بشه مفیدتره ، تشکر از زحماتتون
حقیقتش فرصت نکردم
بگذارید بررسی کنم
درود مهندس برای اینکه دمای حدودا ۲۵۰ درجه رو بخوایم داشته باشیم باید از چه ntc استفاده کنیم همین فرمول جواب میده؟ سپاس
با سلام
برای این منظور بهتر است دیتاشیت سنسورها را بررسی کنید. سنسور pt100 برای دماهای بالاتر از ۱۰۰ درجه سانتی گراد مناسب است.
سلام این کد نویسی اگه نمایشگر سون سگمنت نخواسته باشیم استفاده کنیم هم قابل اجرا هست با تغییرات جزئی یا خیر؟
با سلام
بایستی خودتون بررسی کنید.
سلام این کد نویسی بدون استفاده از نمایشگر سون سگمنت هم با کمی تغییرات قابل اجرا هست یاخیر؟
با سلام
بایستی خودتون این مورد را بررسی کنید.