معرفی سنسور مادون قرمز E18-D80NK
سنسور فاصله سنج E18-D80NK از ماهیت فتوالکترویک استفاده کرده و بخشی از خانواده سنسورهای مادون قرمز به شمار میآید. سنسور فاصله سنج E18-80DNK فاصله شی تا سنسور را توسط پرتو الکترومغناطیسی شناسایی کرده و از پرتو نور جهت شناسایی مانع استفاده میکند. در این حالت از خاصیت بازتاباننده استفاده شده است به این معنی که سنسور دارای بازتاب کننده نور است و نور را از سنسور فرستنده دریافت کرده و به سنسور گیرنده بازتاب میکند. سپس اگر مانع بین سنسور فرستنده و بازتاب کننده نور وجود داشته باشد، به سنسور ارسال میکند. سنسور E18-D80NK در فاصله ۳ تا ۸۰ سانتی متر مانع را شناسایی کرده و توسط یک مولتی ترن قابلیت تنظیم شدت نور دریافتی را دارد. سنسور E18 از یک ال ای دی اینفرارد و گیرنده جهت تشخیص شی در فاصله خاص استفاده میکند. سنسور از یک سیگنال دیجیتال ساده استفاده میکند و خروجی سنسور به صورت پیشفرض High است و با قرار گرفتن شی در مجاورت سنسور LOW میشود. فاصله تشخیص ۳ تا ۸۰ سانتی متری توسط مولتی ترن قابل تنظیم است و در پشت سنسور یک ال ای دی LED تعبیه شده است که پس از شناسایی مانع به صورت چشمک زن عمل میکند. این سنسور دارای سه پایه VCC, GND و OUT است که در سه رنگ آبی، قهوه ای و مشکی در بازار موجود است. همچنین سه رنگ قرمز، سبز و زرد هم از این سنسور وجود دارد. سنسور E18 طبق اطلاعات گفته شده در ابتدا در خط تولید جهت تشخیص اشیا در حال حرکت مصرف داشته و به مرور زمان به دلیل دقت اندازه گیری بالا در مصارف دیگر مانند تشخیص مانع و سیستم های امنیتی هم استفاده شده است. با چرخش مولتی ترن در جهت ساعتگرد CW دامنه شناسایی افزایش یافته و با چرخش در جهت پادساعتگرد دامنه شناسایی کاهش میباید. در صورتیکه مولتی ترن تا آخرین حالت پادساعتگرد چرخانده شود، سنسور دیگر هیچ تشخیصی انجام نمیدهد تا دوباره توسط مولتی ترن به حالت ساعتگرد بازگردد و همچنین این اتفاق برعکس هم رخ میدهد. همچنین این سنسور فقط قابلیت تشخیص مانع را دارد و برای اندازه گیری فاصله تا شی مناسب نمیباشد.
مشخصات فنی سنسور E18-D80NK
- نام سنسور: E18-D80NK
- نوع سنسور: فاصله سنج اپتیکال
- محدوده فاصله اندازه گیری: ۰ تا ۸۰ سانتیمتر
- ولتاژ کاری: ۳٫۳ تا ۵ ولت
- جریان مصرفی: کمتر از ۱۰۰ میلی آمپر
- خروجی: خروجی دیجیتال با فرمت TTL (0 و ۱)
- زمان پاسخگویی: کمتر از ۲٫۳ میلی ثانیه
- دمای کاری: -۲۵ تا +۵۵ درجه سانتیگراد
تست سنسور مادون قرمز E18-D80NK
سنسور در محیط های مناسب و نور کافی تشخیص قابل قبولی دارد و از آنجایی که میزان بازتاب نور IR بسته به زاویه و نور محیط است ممکن است شرایط مکانی مختلف نتایج متفاوتی را رقم بزند. با توجه به اینکه این سنسور توسط نور IR Infrared مانع را شناسایی میکند، شرایط محیطی، نور محیط و زاویه دید سنسور در دستگاه مورد استفاده از اهمیت ویژه ای برخوردار است. به عنوان مثال در دیتاشیت سنسور E18-D80NK اشاره شده است که در صورتیکه سنسور در مقابل یک سطح سفید براق قرار گیرد، سنسور تا فاصله ۱۴۰ سانتی متری مانع را تشخیص خواهد داد. همچنین این مورد با سطح سیاه مسطح تست شده است و با قرار گرفتن سنسور در مقابل سطح سیاه تا فاصله ۱۲۰ سانتی متری را تشخص خواهد داد که تمامی این موارد قطعا نیاز به تست دارد و نتیجه برای همه یکسان نبوده است و شرایط محیطی تست سنسور تاثیر گذار خواهد بود. ایده آل ترین فاصله اندازه گیری شده توسط سنسور ۸ سانتی متر در نور طبیعی میباشد.
پایه سنسور مادون قرمز E18-D80Nk
سنسور E18-D80NK از سه پایه VCC, GND و OUT تشکیل شده است که به ترتیب رنگ آبی، قهوه ای و مشکی میباشد.
- پایه VCC کابل قهوه ای BROWN میباشد.
- پایه GND کابل آبی BLUE میباشد.
- پایه OUT کابل مشکی BLACK میباشد.
راه اندازی بدون برنامه نویسی
یکی از روش های رایج راه اندازی سنسور E18-D80NK اتصال مستقیم و ساده دیجیتال است. تغذیه مورد نیاز جهت راه اندازی سنسور ۵ ولت DC و جریان ۱۰۰ میلی آمپر است. پایه OUT همان پایه سیگنال دیجیتال است که به خروجی مورد نظر متصل میشود.
رله Relay
رله در مدارات الکترونیک همانند کلید عمل کرده و نوعی کلید الکترونیکی است. با عبور جریان الکتریکی از داخل آن، همانند یک کلید عمل میکند. در خروجی میتواند یک مدار دیگر را به حالت باز یا بسته تبدیل کند. له معمولی دارای بوبین که از پرکاربردترین نوع است. در خروجی دارای ۳ پایه میباشد.پایه وسط مشترک و دو پایه کناری یکی NO به مفهوم Normally Open یعنی به صورت پیش فرض در حالت باز قرار دارد. پایه دیگر NC به مفهوم Normally Close یعنی به صورت پیش فرض در حالت بسته قرار دارد. خروجی رله به صورت کلید میان راهی بین یکی از سیمها قرار میگیرد. به عنوان مثال در ادامه روش اتصال مستقیم سنسور به رله مشخص شده است:
- پایه ۵ ولت سنسور E18-D80NK را به پایه ۵ ولت رله اتصال دهید.
- پایه GND سنسور E18-D80NK را به پایه GND رله اتصال دهید.
- پایه OUT سنسور E18-D80NK را به پایه IN رله اتصال دهید.
با اعمال تغذیه سنسور فعال شده و با نزدیک شدن شی در مجاورت سنسور، سنسور مانع را تشخیص داده و رله فعال HIGH خواهد شد.
راه اندازی با برنامه نویسی Arduino
از دیگر روش های راه اندازی سنسور استفاده از میکروکنترلرهایی مانند آردوینو Arduino، Nodemcu, Wemos و رزبری پای Raspberry Pi است که نیاز به دانش برنامه نویسی خواهد داشت. در این مرحله نمونه کد راه اندازی سنسور E18-D80NK توسط برد آردوینو Arduino UNO R3 قرار گرفته شده است.
برد آردوینو
برد آردوینو یک میکروکنترلر با قابلیت دسترسی به پورت های دیجیتال و آنالوگ و پروتکل های I2C و SPI است. در این آموزش از آردوینو Arduino مدل UNO استفاده شده است. آردوینو Arduino دارای تراشه Atmega328P است و با در اختیار داشتن پایه های کنترلی آنالوگ و دیجیتال I/O میتوان با سنسورهای مختلف ارتباط برقرار کرد. با در نظر گرفتن پروتکل ارتباطی آن ها را راه اندازی و کدنویسی کرد. محیط برنامه نویسی IDE Arduino است که نباز به دانش برنامه نویسی C++ خواهد داشت. با انتقال کد به محیط برنامه نویسی و کامپایل کد پروژه آماده اجرا خواهد بود.مراحل نصب نرم افزار آردوینو Arduino در آموزش زیر نوشته و منتشر شده است. در صورتیکه تا به حال با برد آردوینو کار نکرده اید، ابتدا آموزش زیر را مطالعه و سپس مراحل بعدی را اجرا کنید.
آموزش کار با برد آردوینو Arduino و نصب نرم افزار Arduino IDE
همچنین به صورت مستقیم میتوانید نرم افزار آردوینو را از طریق لینک زیر دانلود کنید. مراحل نصب نرم افزار دقیقا مشابه دیگر نرم افزارهای کامپیوتری است.
کد آردوینو Arduino
کد زیر را کپی و یک تب جدید در نرم افزار آردوینو باز کرده و سپس انتقال دهید.
int const LED = 13; // در صورت دلخواه از یک ال ای دی برای نمایش وضعیت میتوانیداستفاده کنید. همچنین ال ای دی شماره ۱۳ ال ای دی داخلی برد میباشد int const E18D80NK = 10; // پایه مشکی رنگ OUT سنسور را به پایه شماره ۱۰ آردوینو اتصال دهید boolean detect = false; // یک نشانه گذاری برای زمان تشخیص مانع توسط سنسور در نظر بگیرید که در حالت پیش فرض به صورت فالس است. void setup() { pinMode(LED, OUTPUT); // تعریف پایه ال ای دی به عنوان خروجی pinMode (E18D80NK, INPUT); //تعریف پایه سنسور به عنوان ورودی Serial.begin(9600); // نمایش متن در سریال مانیتور با بادریت پیشفرض ۹۶۰۰ } void loop() { if ( digitalRead( E18D80NK)) // در صورتیکه خروجی سنسور HIGH باشد ، مانع وجود ندارد { if (detect == true) { // اگر قبلا یک شی تشخیص داده شده بود detect = false; // نشانه گذاری کنید که هیچ شی شناسایی نشده است digitalWrite (LED, LOW); // اگر هیچ شی شناسایی نشده است، ال ای دی خاموش باشد } } else // در صورتیکه خروجی LOW باشد، نشان دهنده تشخیص مانع است { detect = true; // نشانه گذاری کنید digitalWrite (LED, HIGH); //ال ای دی به نشانه تشخیص مانع روشن شود Serial.println("Object Detected"); // و پیام تشخیص مانع برای سریال مانیتور ارسال شود. } delay(100); // زمان تاخیر برای تشخیص دوباره }
جهت کامپایل برنامه در برد آردوینو ابتدا کد را Verify کنید. با اینکار در صورتیکه خطایی در انتقال کد و یا غلط املایی وجود داشته باشد، نمایش داده میشود. سپس بر روی Upload کلیک کنید تا برنامه بر روی برد آپلود Upload و کامپایل شود.
تحلیل کد آردوینو Aruino
در ابتدا جهت شروع برنامه نویسی پایه های مورد استفاده ورودی و خروجی را در برنامه تعریف میکنیم. خروجی میتواند هر قطعه ای مانند ال ای دی LED و یا رله Relay باشد که در کدنویسی تاثیری ندارد. پایه ها را مانند زیر تعریف میکنیم:
int const LED = 13; // در صورت دلخواه از یک ال ای دی برای نمایش وضعیت میتوانیداستفاده کنید. همچنین ال ای دی شماره ۱۳ ال ای دی داخلی برد میباشد int const E18D80NK = 10; // پایه مشکی رنگ OUT سنسور را به پایه شماره ۱۰ آردوینو اتصال دهید boolean detect = false; // یک نشانه گذاری برای زمان تشخیص مانع توسط سنسور در نظر بگیرید که در حالت پیش فرض به صورت فالس است.
همچنین از یک flag یا به ترجمه فارسی نشانه گذاری جهت مشخص کردن وضعیت سنسور در کدها تعریغف میکنیم که به صورت پیشفرض False میباشد و به این معنی است که در مرحله اول هیچ مانعی توسط سنسور تشخیص داده نشده است.
در مرحله بعدی Void setup جهت مشخص شدن ورودی و خروجی و سریال مانیتور نوشته شده است.
void setup() { pinMode(LED, OUTPUT); // تعریف پایه ال ای دی به عنوان خروجی pinMode (E18D80NK, INPUT); //تعریف پایه سنسور به عنوان ورودی Serial.begin(9600); // نمایش متن در سریال مانیتور با بادریت پیشفرض ۹۶۰۰ }
مرحله اصلی حلقه برنامه است که وضعیت فعال و غیرفعال شدن سنسور مشخص میشود:
void loop() { if ( digitalRead( E18D80NK)) // در صورتیکه خروجی سنسور HIGH باشد ، مانع وجود ندارد { if (detect == true) { // اگر قبلا یک شی تشخیص داده شده بود detect = false; // نشانه گذاری کنید که هیچ شی شناسایی نشده است digitalWrite (LED, LOW); // اگر هیچ شی شناسایی نشده است، ال ای دی خاموش باشد } } else // در صورتیکه خروجی LOW باشد، نشان دهنده تشخیص مانع است { detect = true; // نشانه گذاری کنید digitalWrite (LED, HIGH); //ال ای دی به نشانه تشخیص مانع روشن شود Serial.println("Object Detected"); // و پیام تشخیص مانع برای سریال مانیتور ارسال شود. } delay(100); // زمان تاخیر برای تشخیص دوباره }
در این حالت سنسور به صورت پیشفرض HIGH است و با قرار گرفتن مانع در مسیر سنسور E18-D80NK سنسور به وضعیت LOW رسیده و ال ای دی روی برد آردوینو و ال ای دی سنسور همزمان با یکدیگر روشن شده و نشان دهنده فعال شدن سنسور و تشخیص مانع است. در این حالت در صورتیکه خروجی سنسور HIGH باشد، هیچ مانعی در مسیر سنسور قرار ندارد و فلگ Flag به صورت پیش فرض False تعریف شده است به این معنی که مانع هنوز تشخیص داده نشده است و ال ای دی به صورت پیشفرض خاموش است. پس از تشخیص مانع، سنسور LOW شده و سپس فلگ به صورت True یعنی تشخیص مانع میباشد و ال ای دی روشن شده و نشانگر تشخیص مانع است.
وسایل مورد نیاز
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
سلام
فاصله تشخیص بسیار عالیی داره این ماژول،
با تشکر از آموزش خوبتون.
با سلام
از توجه شما ممنونم.
سلام . میشه بفرمایید خروجی این ماژول PNP هست یا NPN و اینکه NO می باشد یا NC ؟ و اینکه اپن کلکتور هست یا نه ؟ مطالب مختلفی تو اینترنت و دیتاشیت های چینی هست . هرکدوم یه چیزی نوشتن .
با سلام
در اکثر دیتاشیت هایی که بنده بررسی کردم سنسور به صورت NPN NO تعریف شده است.
سلام
از این ماژول برای ساخت مایع ریز کرونا میشه استفاده کرد؟ یه ویدیو دیدم ازش، میشه راهنمایی کنید؟
با سلام
بله امکان پذیر است. ورودی ماژول یعنی پایه دیتا را به ورودی رله متصل کنید. در همین آموزش کامل توضیح داده ام.
سلام وقت بخیر
از سنسور های مادون قرمز ( مثلا VL53L0X ) میتوانیم در محیط بیرون و در نور خورشید استفاده کنیم ؟
شما تست کردید ؟ سنسور دچار مشکل میشه یا نه ؟
ممنونم
با سلام
این مورد توسط بنده تست نشده است اما در نظر داشته باشید تابش مستقیم نور در عملکرد سنسور تاثیر منفی خواهد داشت.
یک توضیح کامل از روش نصب با رله رو می خوام
با سلام
آموزش زیر را مطالعه کنید.
آموزش کار با رله
با سلام و عرض ادب
اگر رله رو نزاریم چه مشکلی پیش میاد؟
با سلام
رله قابلیت فرمان به یک وسیله برقی دیگر دارد. اگر رله نباشد نمیتوانید خروجی مدار را به صورت فرمان تعریف کنید.