اتصال سنسور مجاورت رادار مایکروویو RCWL-0516 به آردوینو

محتویات
در این مقاله نحوه استفاده از سنسور مجاورت رادار مایکروویو RCWL-0516 برای تشخیص حرکت با آردوینو را خواهید آموخت. ابتدا سنسور به صورت کامل معرفی میشود و سپس یک کد نمونه را اجرا خواهیم کرد.
این روش جایگزین مناسبی برای تشخیص حرکت PIR با آردوینو است.
معرفی سنسور مجاورت رادار مایکروویو RCWL-0516
RCWL-0516 یک حسگر کوچک و ارزان قیمت است که از رادار مایکروویو برای تشخیص وجود اجسام متحرک استفاده می کند. این حسگر با گسیل پرتویی از امواج مایکروویو و سپس تشخیص جابجایی داپلر در امواج منعکس شده در حین عبور اجسام کار می کند.
معمولاً این سنسورها به صورت بسته پنج تایی فروخته می شوند و با پین های هدر عرضه نمی شوند. بنابراین، ممکن است لازم باشد پینهای هدر را جداگانه بگیرید و سپس خودتان آنها را لحیم کنید.

چگونه کار می کند؟
سنسور RCWL-0516 دارای یک اسیلاتور داخلی است که سیگنال مایکروویو را با فرکانس 3.18 گیگاهرتز تولید می کند. سپس سنسور این سیگنال را در یک الگوی 360 درجه ارسال می کند.
هنگامی که یک جسم در محدوده سنسور حرکت می کند، امواج منعکس شده توسط گیرنده سنسور دریافت می شود. سپس گیرنده فرکانس امواج منعکس شده را اندازه می گیرد و آن را با فرکانس سیگنال اصلی مقایسه می کند. اگر فرکانس امواج منعکس شده تغییر کرده باشد، حسگر می داند که یک جسم حرکت کرده است.
سنسور RCWL-0516 دارای یک پین خروجی واحد است که با تشخیص حرکت HIGH میشود. زمانی که هیچ حرکتی تشخیص داده نشود، LOW را خروجی می دهد.
ویژگی های سنسور RCWL-0516
برد تشخیص RCWL-0516 تا 7 متر است و می تواند اجسامی را که با سرعت 2 متر در ثانیه حرکت می کنند را تشخیص دهد. همچنین دارای یک زمان تاخیر قابل تنظیم داخلی است که میتوان از آن برای جلوگیری از تحریک مکرر سنسور روی یک شی استفاده کرد.
در اینجا خلاصه ای از برخی از ویژگی های کلیدی سنسور RCWL-0516 آمده است:
- از رادار مایکروویو برای تشخیص اجسام متحرک استفاده می کند
- برد تشخیص تا 7 متر
- می تواند اجسامی را که حتی با سرعت 2 متر در ثانیه حرکت می کنند شناسایی کند
- زمان تاخیر قابل تنظیم داخلی
- مصرف برق کم
- ارزان
مشخصات سنسور RCWL-0516:
- ولتاژ تغذیه: 4-28 ولت DC
- فرکانس کاری: 3.18 گیگاهرتز
- فاصله سنجش: 5-7 متر
- سطح خروجی: 3.4V زیاد <0.7 کم
- درایو خروجی: 100 میلی آمپر
- زمانبندی خروجی: ریتریگر 2 ثانیهای با حرکت
سنسور اختیاری مقاومت وابسته به نور (LDR)
این سنسور دارای گزینه ای برای لحیم کردن یک مقاومت وابسته به نور (حسگر نور) است، اگر می خواهید سنسور شما فقط در شرایط تاریک کار کند. می توانید خروجی سنسور LDR را روی پین LDR دریافت کنید. همچنین می توانید LDR را به پین CDS متصل کنید.
هنگامی که خروجی LDR بزرگتر از 0.7 ولت باشد (هنگامی که حرکت تشخیص داده شود)، پین OUT یک سیگنال HIGH صادر می کند. اگر حرکت تشخیص داده شود اما خروجی LDR کوچکتر از 0.7 ولت باشد، خروجی LOW خواهد بود. این بدان معناست که هنگام وصل کردن یک LDR، حسگر تنها زمانی که هوا تاریک است حرکت را حس می کند.
میتوانید حساسیت LDR را با اتصال یک مقاومت روی پدهای R-CDS، یا با افزودن یک مقاومت کششی بهصورت خارجی به موازات پین CDS تنظیم کنید.
در مورد من، من یک مقاومت پول آپ 22KOhm به پین LDR اضافه کردم تا بتواند حرکت را در نور کم تشخیص دهد. بدون مقاومت، حتی در شرایط خیلی تاریک هم خروجی مثبتی نداشتم. ممکن است لازم باشد مقادیر مقاومت متفاوتی را امتحان کنید تا ببینید کدام یک برای سناریوی شما بهتر عمل می کند.
پین های سنسور مجاورت رادار مایکروویو
سنسور مجاورت رادار مایکروویو RCWL-0516 دارای پنج پین است:
- 3V3: این خروجی از تنظیم کننده ولتاژ است (نه پایه تغذیه)
- VIN: این پین ورودی برق است. سنسور می تواند با محدوده ولتاژ 4-28 ولت تغذیه شود.
- GND: این پین زمین است.
- OUT: این پین خروجی است. وقتی سنسور حرکت را تشخیص دهد، پین خروجی HIGH میشود و زمانی که این حرکت را تشخیص نمیدهد، LOW میماند.
- CDS: این پین برای اتصال یک مقاومت وابسته به نور (LDR) استفاده می شود. از LDR می توان برای غیرفعال کردن سنسور در شرایط نور شدید استفاده کرد.
تفاوت حسگر مجاورت رادار مایکروویو و PIR
حسگر مجاورت رادار مایکروویو بسته به کاربرد پروژه، خیلی اوقات به عنوان جایگزینی برای حسگر حرکتی PIR استفاده می شود. جدول زیر هر دو سنسور را با هم مقایسه می کند:
رادار مایکروویو RCWL-0516 | سنسور حرکتی PIR | |
چگونه کار می کند؟ | سنسور فعال (سیگنال های مایکروویو را منتشر می کند و بازتاب ها را تشخیص می دهد) | سنسور غیرفعال (اشعه مادون قرمز ساطع شده از اجسام را تشخیص می دهد) |
محدوده تشخیص | برد طولانی تر، معمولاً تا 7+ متر | برد کوتاهتر، معمولاً چند متر، بسته به مدل. |
قابلیت سنجش | می تواند از طریق مواد غیر فلزی حس کند. | مسدود شده توسط مواد خاصی (مانند شیشه) |
حساسیت به حرکت | بسیار حساس است، ممکن است مثبت کاذب بدهد. | خیلی حساس نیست، ممکن است حرکات ظریف را از دست بدهد. فقط موجودات زنده ای که گرما ساطع می کنند را تشخیص می دهد. |
منطقه تحت پوشش | پوشش گسترده با الگوی راداری گسترده. |
اتصال سنسور رادار مایکروویو به آردوینو
در این بخش، سنسور RCWL-0516 را به برد آردوینو متصل می کنیم. ما همچنین یک LED را به پین 13 وصل می کنیم که با تشخیص حرکت روشن می شود. اگر LED ندارید، میتوانید با استفاده از LED داخلی آردوینو، کد ما را آزمایش کنید.
برای اتصال سنسور مجاورت رادار مایکروویو RCWL-0516 به آردوینو، جدول یا نمودار شماتیک بعدی را دنبال کنید:
RCWL-0516 | آردوینو |
3V3 | متصل نمیشود. |
GND | GND |
OUT | Pin12 (یا پین دیجیتال دیگر) |
VIN | 5V (یا مثبت هر منبع تغذیه ای بین 4 تا 28 ولت) |
CDS | متصل نمیشود. |
قطعات مورد نیاز
در اینجا لیستی از قطعات مورد نیاز برای این پروژه آمده است:
- Arduino UNO
- سنسور رادار مایکروویو RCWL-0516
- مقاومت وابسته به نور (اختیاری)
- LED
- مقاومت 220 اهم
- برد بورد
- سیم های جامپر
کد آردوینو برای سنسور RCWL-0516
کد کامل پروژه در فایل دانلودی انتهای صفحه قرار داده شده است. در این بخش های مختلف کد را توضیح میدهیم.
این کد به سادگی خروجی سنسور را میخواند و در مانیتور سریال چاپ میکند و زمانی که حرکت تشخیص داده میشود، LED داخلی آردوینو را بر این اساس روشن میکند (ال ای دی در هنگام تشخیص حرکت روشن میشود).
ما LED را به پین 13 وصل می کنیم. اگر LED ندارید، می توانید از LED داخلی آردوینو که به پین 13 متصل است استفاده کنید.
int led = 13;
ما خروجی سنسور را به پین 12 وصل می کنیم، اما می توانید از هر پایه دیگری استفاده کنید.
int sensor = 12;
سپس، برخی از متغیرها را تنظیم میکنیم. متغیر state وضعیت فعلی پین خروجی سنسور را ذخیره می کند و در ابتدا روی LOW تنظیم می شود.
int state = LOW;
متغیر val وضعیت (مقدار) خروجی دیجیتال سنسور را، یا HIGH یا LOW، ذخیره می کند.
int val = 0;
اساساً از val برای ذخیره موقت مقدار خروجی سنسور استفاده میشود، در حالی که state برای بررسی اینکه آیا حرکت در طول زمان تشخیص داده شده است یا خیر استفاده میشود.
در setup()، پایه ال ای دی را به عنوان خروجی و سنسور را به عنوان ورودی تنظیم کنید. همچنین، Serial Monitor را با نرخ باود 9600 مقداردهی اولیه کنید.
void setup() { pinMode(led, OUTPUT); pinMode(sensor, INPUT); Serial.begin(9600); }
در loop()، با خواندن خروجی دیجیتال سنسور (HIGH یا LOW) شروع می کنیم و آن را در متغیر val ذخیره می کنیم.
val = digitalRead(sensor); // read sensor value
اگر خروجی سنسور HIGH باشد (حرکت تشخیص داده شود)، LED روشن می شود.
if (val == HIGH) { digitalWrite(led, HIGH);
سپس، بررسی می کنیم که آیا وضعیت قبلی LOW بوده است یا خیر. اگر چنین است، به این معنی است که وضعیت تغییر کرده و آن حرکت تشخیص داده شده است. پیامی را در Serial Monitor چاپ می کنیم و متغیر حالت را به HIGH تغییر می دهیم.
if (state == LOW) { Serial.println("Motion detected!"); state = HIGH; }
اگر خروجی سنسور کم باشد (هیچ حرکتی تشخیص داده نمی شود)، LED را خاموش می کنیم.
else { digitalWrite(led, LOW);
اگر حالت قبلی HIGH بود و اگر اکنون حالت LOW باشد به این معنی است که حرکت متوقف شده است و می توانیم متغیر حالت را روی LOW قرار دهیم.
if (state == HIGH){ Serial.println("Motion stopped!"); state = LOW; }
تست کد
کد را روی برد آردوینو آپلود کنید و مانیتور سریال را با نرخ باود 9600 باز کنید سپس برد خود را ریست کنید.
هنگامی که حرکت تشخیص داده می شود. شما باید یک پیام “Motion detected” و سپس یک پیام “Motion stopped” پس از دو ثانیه دریافت کنید. علاوه بر این، با تشخیص حرکت، LED روی برد روشن می شود.
در این آموزش، نحوه استفاده از حسگر مجاورت رادار مایکروویو RCWL-0516 را برای تشخیص حرکت در محیط اطراف خود یاد گرفتید. بسته به نیاز پروژه شما، RCWL-0516 ممکن است جایگزین خوبی برای سنسور حرکت PIR باشد.
موارد موجود در فایل : سورس کامل
برای دانلود فایل ها باید حساب کاربری داشته باشید
ثبت نام / ورود