آموزش کار با رله دو کانال (+ نمونه کد آردوینو)
محتویات
در این مقاله نحوه کار با ماژول رله دو کانال و کنترل آن با یک کد نمونه آردوینو را یاد میگیرید. با توجه به اینکه کار با ماژول رله دو کانال کمی پیچیده تر از رله یک کانال به نظر میرسد، این مقاله تهیه شده است تا به شما در نحوه کار با این ماژول کمک کند. در این مقاله ابتدا ماژول را معرفی میکنیم و سپس یک نمونه پروژه برای کنترل لامپ توسط رله اجرا میکنیم.
در پایان این آموزش، شما باید بتوانید با استفاده از یک ماژول رله، تمام لوازم الکترونیکی را با برد آردوینو خود کنترل کنید.
معرفی ماژول رله 2 کانال
رله یک سوئیچ الکتریکی است که می تواند روشن یا خاموش شود، جریان را عبور دهد یا نه، و می تواند با ولتاژهای پایین کنترل شود، مانند 5 ولت که توسط پین های آردوینو ارائه می شود.
این ماژول رله دارای دو کانال (آن مکعب های آبی دو رله هستند) است. مدل های دیگری با یک، چهار و هشت کانال وجود دارد. این ماژول باید با 5 ولت تغذیه شود که برای استفاده با آردوینو مناسب است. ماژول های رله دیگری نیز وجود دارند که با استفاده از 3.3 ولت تغذیه می شوند که برای ESP32، ESP8266 و سایر میکروکنترلرها ایده آل هستند.
شکل زیر پین اوت ماژول رله را نشان می دهد.
6 ترمینال موجود در سمت چپ تصویر مربوط به اتصال به دستگاه ها با ولتاژ بالا مثلا لامپ، تلویزیون یا … هستند. در حالیکه 4 پایه بالایی سمت راست مربوط به اتصال به دستگاه با ولتاژ پایین مثل آردوینو، میکروکنترلر یا سایر برد ها هستند.
سمت ولتاژ بالا (چپ) دارای دو کانکتور است که هر کدام دارای سه سوکت است: مشترک (COM)، معمولاً بسته (NC) و معمولاً باز (NO).
- COM: پین مشترک
- NC (معمولاً بسته): پیکربندی معمولاً بسته زمانی استفاده میشود که میخواهید رله بهطور پیشفرض جریان را عبور دهد. یعنی برق جریان دارد مگر اینکه سیگنالی از آردوینو به ماژول رله ارسال کنید تا مدار باز شود و جریان قطع شود.
- NO (به طور معمول باز): پیکربندی معمولا باز برعکس معمولا بسته عمل می کند: رله همیشه باز است، بنابراین مدار قطع است مگر اینکه سیگنالی از آردوینو برای بستن مدار ارسال کنید.
اگر فقط می خواهید گهگاهی یک لامپ را روشن کنید، بهتر است از پیکربندی مدار معمولا باز استفاده کنید.
سمت ولتاژ پایین دارای مجموعه ای از چهار پایه در بالا و مجموعه ای از سه پایه در پایین است.
مجموعه سمت راست شامل VCC و GND برای روشن کردن ماژول و ورودی 1 (IN1) و ورودی 2 (IN2) به ترتیب برای کنترل رله اول و دوم است.
مجموعه دوم پین ها از پایه های GND، VCC و JD-VCC تشکیل شده است. پین JD-VCC آهنربای الکتریکی رله را تغذیه می کند.
توجه: توجه داشته باشید که ماژول دارای یک جامپر است که پین های VCC و JD-VCC را به هم متصل می کند. جامپر به شما این امکان را می دهد که انتخاب کنید آیا مدار به صورت فیزیکی به برد آردوینو متصل است یا خیر و همچنین می توانید روشن بودن یا نبودن آن را انتخاب کنید. با استفاده از این جامپر، پین های VCC و JD-VCC به هم متصل می شوند. این بدان معناست که آهنربای الکتریکی رله مستقیماً از پایه برق آردوینو تغذیه می شود، بنابراین ماژول رله و مدارهای آردوینو از نظر فیزیکی از یکدیگر جدا نیستند (این پیکربندی است که ما استفاده خواهیم کرد). بدون جامپر، باید یک منبع تغذیه مستقل برای تغذیه آهنربای الکتریکی رله از طریق پین JD-VCC تهیه کنید. این پیکربندی به صورت فیزیکی رلهها را از آردوینو با اپتوکوپلر داخلی ماژول جدا میکند.
اتصالات بین ماژول رله و آردوینو بسیار ساده است:
- GND: به زمین متصل میشود.
- IN1: اولین رله را کنترل می کند (به یک پین دیجیتال آردوینو متصل خواهد شد)
- IN2: رله دوم را کنترل می کند (اگر میخواهید از دو رله استفاده کنید، این مورد را هم به یک پین دیجیتال آردوینو متصل کنید)
- VCC: به 5 ولت متصل میشود.
نمونه پروژه آردوینو با ماژول رله دو کانال
در این مثال، ما یک لامپ حساس به حرکت ایجاد می کنیم. هر بار که حرکتی تشخیص داده می شود یک لامپ به مدت 10 ثانیه روشن می شود. حرکت با استفاده از حسگر حرکتی PIR تشخیص داده می شود.
برای کنترل لامپ با ولتاژ شبکه، ما از یک ماژول رله در پیکربندی معمولا باز استفاده می کنیم.
هشدار: هنگامی که پروژه هایی را انجام می دهید که به ولتاژ برق متصل هستند، واقعاً باید بدانید که چه کار می کنید، در غیر این صورت ممکن است به خودتان شوک برقی وارد کنید. این یک موضوع جدی است و ما می خواهیم که شما در امان باشید. اگر 100% مطمئن نیستید که چه کاری انجام می دهید، به خودتان لطف کنید و به چیزی دست نزنید.
قطعات مورد نیاز
در اینجا قطعات مورد نیاز برای این مثال آمده است:
- ماژول رله
- Arduino UNO
- سنسور حرکت PIR
کد آردوینو
کد کامل در انتهای صفحه برای دانلود قرار داده شده است. در این قسمت، بخش های مختلف کد را بررسی میکنیم.
ابتدا دو متغیر ایجاد میکنیم که پایه مربوط به رله و وضعیت آن را در آن ذخیره کنیم.
int relay = 8;
volatile byte relayState = LOW;
سنسور حرکت PIR به پین 2 متصل است:
int PIRInterrupt = 2;
برای کنترل تایمرها با سنسور حرکت PIR باید چند متغیر کمکی ایجاد کنیم. متغیر lastDebounceTime آخرین باری که حرکت تشخیص داده شده را ذخیره می کند. DebounceDelay مدت زمان روشن ماندن لامپ پس از تشخیص حرکت را ذخیره می کند (در اینجا ما آن را روی 10 ثانیه = 10000 میلی ثانیه را تنظیم می کنیم)
long lastDebounceTime = 0;
long debounceDelay = 10000;
در setup()، رله را به عنوان OUTPUT تنظیم می کنیم و آن را به طور پیش فرض خاموش می کنیم:
pinMode(relay, OUTPUT);
digitalWrite(relay, HIGH);
از آنجا که ما از یک پیکربندی معمولا باز استفاده می کنیم، هیچ تماسی بین سوکت های COM و NO وجود ندارد مگر اینکه رله فعال باشد. رله زمانی فعال می شود که ورودی رله کمتر از 2 ولت باشد. این بدان معناست که اگر سیگنال LOW را از آردوینو ارسال کنید، رله روشن می شود و اگر سیگنال HIGH ارسال کنید، رله خاموش می شود. در حقیقت با منطق معکوس کار می کند.
سنسور حرکت PIR را به عنوان یک وقفه تنظیم کنید:
pinMode(PIRInterrupt, INPUT);
// Triggers detectMotion function on rising mode to turn the relay on, if the condition is met
attachInterrupt(digitalPinToInterrupt(PIRInterrupt), detectMotion, RISING);
هر زمان که سنسور حرکت PIR فعال شود، تابع detectMotion() اعلام شده در انتهای کد را فراخوانی می کند تا رله را روشن کند:
void detectMotion() {
Serial.println("Motion");
if(relayState == LOW){
digitalWrite(relay, LOW);
}
relayState = HIGH;
Serial.println("ON");
lastDebounceTime = millis();
}
در loop() بررسی می کنیم که آیا 10 ثانیه از روشن بودن رله گذشته است یا خیر. اگر این شرط درست باشد، می توانیم رله را خاموش کنیم.
if((millis() - lastDebounceTime) > debounceDelay && relayState == HIGH){
digitalWrite(relay, HIGH);
relayState = LOW;
Serial.println("OFF");
}
مدار کنترل رله دو کاناله با برد Arduino
همانطور که در تصویر شماتیک مدار نشان داده شده است، تمام قطعات را مونتاژ کنید.
هشدار: به هیچ سیمی که به ولتاژ برق متصل است دست نزنید. همچنین مطمئن شوید که تمام پیچ های ماژول رله را سفت کرده اید.
لامپ با استفاده از یک پیکربندی معمولا باز به رله متصل می شود. آردوینو رله را از طریق پایه 8 کنترل می کند (پایه 8 به پایه رله IN1 متصل است). در نهایت، سنسور حرکت PIR به پایه 2 متصل می شود.
پس از آپلود کد و سیم کشی مدار، می توانید تنظیمات خود را تست کنید.
هنگامی که حرکت تشخیص داده می شود، لامپ شما روشن می شود. اگر به مدت 10 ثانیه حرکتی وجود نداشته باشد، لامپ خاموش می شود.
کنترل یک ماژول رله با آردوینو به سادگی کنترل یک خروجی است – فقط باید سیگنال های HIGH یا LOW را با استفاده از یک پین دیجیتال آردوینو ارسال کنید. با ماژول رله می توانید تقریباً هر وسیله الکترونیکی AC (نه فقط لامپ) را کنترل کنید.
جهت کار بیشتر با ماژول تشخیص حرکت، مقاله سنسور تشخیص حرکت PIR و آردوینو (آموزش جامع) را مشاهده کنید.