اینکه قابلیت تشخیص دمای اجسام را داشته باشی جذاب است. اما قابلیت اینکه دمای یک شی را بدون تماس با آن تشخیص بدهیم؛ فوق العادست. سنسور MLX90614 یک سنسور دماسنج مادون قرمز است که میتواند دقیقا همین کار را انجام دهد. این سنسور دوس داشتنی توسط اسکن نور مادون قرمز ساطع شده از جسم میتونه دمایی بین منفی ۹۸ تا ۷۲۰ درجه فارنهایت ( منفی ۷۰ تا ۳۸۲/۲ درجه سانتیگراد ) را با وضوح ۱۷ بیت تشخیص بده که این مقدار ۱۲۸ برابر دقیقتر از سنسورهای دمایی که به وسیله ADC به آردوینو ارتباط برقرار میکنن و این به این معنی که سنسور دوس داشتنی ما میتونه تفاوت بینه ۲۵ درحه و ۲۵/۰۲ درجه را بدون اینکه حتی در تماس با جسم fhan . به نظر میاد کسانی که قصد دارند سنسور MLX90614 را اه اندازی کنند باید زمان سختی را با این سنسور سر و کله بزنند. بنابراین ما در دیجی اسپارک راهاندازی ساده این سنسور را آموزش میدهیم پس در ادامه با مرجع تخصصی آردوینو همراه باشید.
ویژگیهای سنسور mlx90614
- پروتکل ارتباطی I2C
- کالیبره شدن در کاخانه برای رنجهای
- ۴۰- الی ۸۵+ درجه سانتیگراد برای اندازهگیری دمای خود سنسور
- ۷۰- الی ۳۸۰+ درجه سانتیگزاد برای اندازهگیری اجسام توسط سنسور
- انطباق ولتاژی ۳٫۳ ولت الی ۱۶ ولت
- حالت ذخیره انرژی
اتصال MLX90614 به آردوینو
سنسور MLX90614 همانند بسیاری از سنسور هایی که قبلا راجب به آن ها صحبت کردیم برای برقراری ارتباط با آردوینو از پروتوکل I2C استفاده میکند. همچنین برخلاف اکثر سنسورهایی که ما با آنها کار میکردیم، سنسور MLX90614 بر روی یک برد (PCB) نیست. پس نیازمندیم دو پین DATA و CLOCK LINES را به وسیله دوعدد مقامت در وضعیت PULL_UP قرار دهیم. اگر این سنسور را به صورت ماژول تهیه کرده باشید. این مقاومتها به صورت پیشفرض بر روی برد قرار دارند ولی ما متوجه آنها نمیشویم. همانطور که میدانید برای اتصال این سنسور به برد آردوینو تمام مدلها به جز آردوینو مگا۲۵۶۰ SDA برو روی پین آنالوگ شماره ۴ و SCL بر روی پین آنالوگ شماره ۵ قرار دارد. در آردوینو مگا SDA بر روی پین دیجیتال شماره ۲۰ و SCL هم بر روی پین دیجیتال شماره ۲۱ قرار دارد. همچنین لازم است که یک مقاومت ۴٫۷ کیلواهم از SCL به ۳٫۳ ولت و یکی دیگر هم از SDA به ۳٫۳ ولت وصل کنید. در دیتاشیت اعلام شده که از یک خازن ۱میکروفاراد بین VCC و GND استفاده شود. من هم سنسور را با این خازن تست کردم و هم بدون آن، نتیجهای که از سنسور میگیرم تفاوتی ندارد.
کد نویسی سنسور MLX90614
کتابخانه سنسور MLX90614 را از لینک زیر دانلود کنید. با توجه به آموزشی که لینکش را قرار دادم ، کتابخانه را به نرم افزار آردوینو Arduino IDE اضافه کنید.
دانلود کتابخانه سنسور mlx 90614
پس از نصب کتابخانه کدهای زیر را کپی کرده و در IDE آردوینو paste کنید. سپس آپلود کد بر روی آردوینو نتیجه را بر روی سریال مانیتور نرم افزار آردوینو مشاهده کنید.
#include <Wire.h> #include <Adafruit_MLX90614.h> Adafruit_MLX90614 mlx = Adafruit_MLX90614(); void setup() { Serial.begin(9600); Serial.println("Adafruit MLX90614 test"); mlx.begin(); } void loop() { Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempC()); Serial.print("*CtObject = "); Serial.print(mlx.readObjectTempC()); Serial.println("*C"); Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempF()); Serial.print("*FtObject = "); Serial.print(mlx.readObjectTempF()); Serial.println("*F"); Serial.println(); delay(500); }
توضیح توابع سنسور MLX90614
برای شروع کار با این کتابخانه ابتدا باید همانند قطعه کد زیر از آن یک آبجکت بسازید.
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
به وسیلهی این تابع ماژول را فعال میکنیم.
begin()
به وسیلهی این تابع دمای خود ماژول را برحسب درجه سانتیگراد اندازهگیری میکنیم( توجه داشته باشین که گفته شد دمای خود ماژول ، نه دمای جسم مورد نظر).
readAmbientTempC()
به وسیلهی این تابع دمای جسم مورد نظر برحسب درجه سانتی گراد اندازهگیری میشود.
readObjectTempC()
این تابع دمای ماژول را بر حسب فارنهایت اندازهگیری مینماید.
readAmbientTempF()
به وسیلهی این تابع دمای جسم موردنظر بر حسب فارنهایت اندازهگیری میشود.
readObjectTempF()
سخت افزار مورد نیاز
سنسور دماسنج مادون قرمز MLX90614
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.