شما به اینترنت متصل نیستید.
معرفی و راه‌اندازی انواع رله با آردوینو
نویسنده:
امتیاز 3 از 5

معرفی و راه‌اندازی انواع رله با آردوینو

این مطلب قسمت دوم از مجموعه آموزش جامع اینترنت اشیا با آردوینو است. اگر بخواهید کمی پا را فراتر از حد قطعات الکترونیکی گذاشته و دستگاه‌های الکتریکی مثل روشنایی منزل، سیستم تهویه، سیستم باز و بسته کننده درب پارکینگ و یا هر وسیله دیگری که با برق شهری ولتاژ بالا کار می‌کند را در پروژه‌تان استفاده کنید به یک قطعه به نام رله نیاز خواهید داشت. حالت‌های زیادی پیش می‌آید که نیاز دارید یک وسیله با ولتاژ یا جریان بالا را توسط یک مدار توان پایین کنترل کنید. مثل وقتی که می‌خواهید با ولتاژ 5V آردوینوتان یک دستگاه 220V را روشن و خاموش کنید. در این صورت نیاز دارید تا بخش توان پایین و بخش توان بالا از یکدیگر از لحاظ الکتریکی مجزا باشند. در غیر این صورت قطعات الکترونیکی‌تان از بین خواهد رفت. رله‌ها دقیقا مثل یک کلید، جریان برق اعمالی به دستگاه را قطع و وصل می‌کنند. با این تفاوت که قطع و وصل کردن کلید بجای انسان به صورت الکترونیکی انجام می‌شود.

قطعات مورد نیاز

برد آردوینو UNO R3
برد آردوینو و کابل رابط
1 عدد
ماژول رله 5 ولت یک کاناله OMRON SSR
رله SSR یک کاناله
1 عدد
ماژول رله 5 ولت یک کاناله Low Level Trigger (اپتوکوپلر)
رله EMR یک کاناله
1 عدد
ماژول سنسور تشخیص حرکت hc-sr501
سنسور حرکت
1 عدد
موتور DC
1 عدد
ریموت کنترل مادون قرمز 21 کلیدی با برد 8 متر-فرکانس 38kHz
ریموت کنترل مادون قرمز
1 عدد
گیرنده مادون قرمز
1 عدد
لامپ و سرپیچ
1 عدد
کابل برق(متر)
2 عدد
مقاومت 1kΩ
1 عدد
بردبورد
1 عدد
سیم جامپر(بسته)
2 عدد

توجه: در این آموزش از برق 220V استفاده می‌شود. بنابراین انجام آن تنها در صورتی که آشنایی و تجربه کافی در استفاده از برق متناوب دارید و با در نظر گرفتن مسائل ایمنی توصیه می‌شود.

معرفی رله الکترومکانیکی

اولین کاربرد رله‌ها در خطوط طویل تلگراف بود. سیگنال ارسالی در طول مسیر ضعیف می‌شد. به همین دلیل در میانه مسیر ایستگاه‌های تقویتی وجود داشت که با استفاده از رله‌های الکترومکانیکی، با استفاده از سیگنال ضعیف ورودی، یک کانتکت فعال شده و سیگنال برای ارسال دوباره بازتولید می‌شد.

آموزش رله با آردوینو

درون رله الکترومکانیکی یا EMR یک کویل وجود دارد که دور یک هسته آهنی پیچیده شده است. در صورتی که به کویل جریان برق وصل شود، این مجموعه تبدیل به یک آهنربای موقت می‌شود. در مقابل هسته یک قطعه فلزی (بازو) وجود دارد که با برقرار شدن جریان و تشکیل آهنربا، به سمت آن کشیده شده و یک اتصال الکتریکی را برقرار کرده یا اتصالی که از قبل وجود داشته را قطع می‌کند و این بستگی به نحوه طراحی رله دارد. نکته مهم این است که جریان اولیه که از کویل می‌گذرد و جریان دوم که از کانتکت‌ها عبور می‌کند کاملا ایزوله بوده و هیچ‌گونه ارتباط مستقیمی با هم ندارند. همچنین درون رله یک فنر وجود دارد که با قطع جریان ورودی، بازو را به محل اولیه خود باز می‌گرداند.

آموزش رله با آردوینو

معرفی رله حالت جامد

نوع جدیدتری از رله نیز وجود دارد که در آن بجای سیم‌پیچ و قطعات متحرک مکانیکی، از یک مدار الکترونیکی برای وصل و قطع جریان خروجی استفاده شده است. به این نوع رله، Solid State Relay ، رله حالت جامد یا SSR می‌گویند. رله SSR نسبت به رله الکترومکانیکی عمر بیشتر، سرعت عملکرد بالاتر و حجم کوچکتری داشته و در عوض گران‌تر است. در رله SSR برخلاف رله‌های الکترومکانیکی خبری از سر و صدای برخورد کانتکت‌ها نیست. این یک مزیت بزرگ است.

آموزش رله با آردوینو

در رله SSR پایه ورودی سیگنال به یک LED متصل است. این LED با یک فاصله مناسب مقابل یک سنسور نور قرار گرفته است. سنسور نور به یک ترانزیستور متصل شده که جریان خروجی را قطع و وصل می‌کند. مجموعه‌ای که این کار را درون رله انجام می‌دهد اپتوکوپلر (Optocoupler) یا Opto-transistor است. دو قسمت اول و دوم مدار تنها از طریق نور LED با هم مرتبط بوده و در نتیجه هر کدام می‌توانند با ولتاژ و جریان خود کار کنند بدون اینکه به یکدیگر آسیب برسانند. زمانی که ترانزیستور تحریک می‌شود، مدار ولتاژ بالا بسته شده و جریان برقرار می‌شود در غیر این صورت، ترانزیستور مدار را قطع کرده و جریانی عبور نمی‌کند.

آموزش رله با آردوینو

رله SSR نیز دقیقا مثل یک رله الکترومکانیکی یا یک سوئیچ عمل می‌کند. چالش اصلی در این نوع رله‌ها انتخاب رله مناسب است؛ چرا که یک رله SSR که برای تمام کاربردها مناسب باشد وجود ندارد. بر خلاف رله EMR، مدار موجود در رله SSR برای جریان مستقیم (DC) و جریان متناوب (AC) تفاوت‌هایی دارد. به همین دلیل بعضی از SSR ها برای جریان مستقیم، بعضی برای جریان متناوب هستند و انواعی نیز وجود دارد که با هر دو نوع جریان کار می‌کند. نوع آخر معمولا برای ولتاژهای کم طراحی می‌شوند. وصل کردن SSR اشتباه به مدار می‌تواند خطرآفرین باشد.

مقایسه انواع رله

رله SSR همان قابلیت‌های رله الکترومکانیکی را دارد. مزایای رله SSR به صورت زیر است:

  • در حین کار تداخل الکترومغناطیسی بسیار کمتری ایجاد می‌کنند. این موضوع بیشتر به دلیل عدم وجود پدیده‌ قوس الکتریکی در محل تماس است که تنها در رله‌های مکانیکی وجود دارد. در رله‌های الکترومکانیکی در زمان سوئیچ، تماس دو قطعه فلزی درون آن می‌تواند باعث ایجاد جرقه داخلی شود. دلیل دوم برای رخ دادن تداخل الکترومغناطیسی وجود کویل مغناطیسی درون رله‌های EMR است.
  • محل تماس در رله‌های الکترومکانیکی در اثر تخلیه الکتریکی به مرور فرسوده می‌شود. رله‌های SSR از آنجا که ساختار داخلی‌شان تماما دیجیتال است، عمر بسیار زیادی دارند.
  • خاموش و روشن شدن رله‌های SSR حدودا ١٠ برابر سریع‌تر از رله‌های الکترومکانیکی است.
  • در کاربردهایی که ایجاد جرقه، قوس الکتریکی یا میدان مغناطیسی در محیط می‌تواند خطرآفرین باشد، رله SSR انتخاب بهتری است.
  • وجود ارتعاشات تاثیر بسیار کمتری بر روی رله‌های SSR دارد.
  • به دلیل اینکه رله SSR هیچ قطعه مکانیکی ندارد، عملکرد کاملا بی‌صدایی دارد در حالی که صدای برخورد کانتکت‌های رله الکترومکانیکی بسیار آزاردهنده است.
  • در عین حال رله SSR اشکالات زیر را نیز دارد:
  • قیمت بالا
  • اتلاف انرژی حرارتی بیشتر نسبت به رله‌های الکترومکانیکی

بررسی حالت‌های کاری رله

رله‌ها را می‌توان به دو دسته تقسیم کرد: Normally Open و Normally Closed. در رله NO وقتی که ولتاژ به رله اعمال می‌شود، جریان شروع به حرکت درون کویل کرده و یک میدان مغناطیسی ایجاد می‌کند که بازوی متحرک را جذب کرده و اتصال در مدار خروجی برقرار می‌شود. در رله NO وقتی که ولتاژی به آن وارد نمی‌شود، اتصال خروجی باز است. همین خاصیت در رله SSR نیز وجود دارد با این تفاوت که این عملکرد را یک مدار الکترونیکی ایجاد می‌کند. در رله NC در شرایطی که ولتاژ ورودی به آن صفر است، مدار وصل است و میدان مغناطیسی، اتصال را قطع می‌کند.

آموزش رله با آردوینو

دسته‌بندی دیگری نیز برای رله‌ها وجود دارد که زمان برقراری اتصال را تعیین می‌کند. این دسته‌بندی مخصوص رله SSR است. رله SSR می‌تواند شرایط کاری مختلفی داشته باشد. در حالتی که این نوع رله برای قطع و وصل جریان متناوب (AC) استفاده شود، ولتاژ اعمال شده به بار در لحظات مختلف متفاوت است. وصل کردن ولتاژ ناگهانی به دستگاه می‌تواند به آن آسیب برساند. به همین دلیل رله SSR می‌تواند جریان را در لحظه‌ای که ولتاژ به صفر می‌رسد وصل کند. به این حالت، Zero Switching گفته می‌شود. در صورتی که رله جریان را بلافاصله در لحظه اعمال جریان ورودی وصل کند به آن Instant On و اگر در لحظه اوج جریان، ولتاژ را وصل کند به آن Peak Switching می‌گویند.

مورد دیگری که در مورد رله‌ها باید بدانید، نحوه تحریک یا trigger آنهاست. دو حالت مختلف برای تحریک رله وجود دارد: Low Level Trigger و High Level Trigger و این بستگی به سازنده رله دارد. در حالت HLT با اعمال ولتاژ الکتریکی مثبت و در حالت LLT با اعمال ولتاژ صفر، رله از وضعیت Normal خود خارج می‌شود. این موضوع را نباید با Normally Closed و Normally Open اشتباه بگیرید.

ساخت روشنایی هوشمند با رله و آردوینو

حتما تا به حال ساختمان‌هایی که روشنایی هوشمند دارند را دیده‌اید یا شاید خودتان در یکی از این ساختمان‌ها زندگی یا کار می‌کنید. روشنایی هوشمند در حالت عادی خاموش است و تنها در صورتی که شخصی از جلوی آن عبور کند روشن می‌شود. این روش کمک می‌کند تا در مصرف برق صرفه‌جویی شود. برای اینکه خودتان یک روشنایی هوشمند بسازید به رله و سنسور حرکت نیاز دارید که در آموزش سنسورهای پرکاربرد اینترنت اشیا با آن آشنا شدید. در کنار این موارد از آردوینو به عنوان مرکز فرماندهی پروژه استفاده می‌کنیم. رله‌ای که در این قسمت مورد استفاده قرار گرفته است، یک رله SSR با جریان خروجی AC است که با ولتاژ 5V تحریک می‌شود. پین +DC و -DC رله را به 5V و GND آردوینو و CH را به پایه ٢ آردوینو وصل کنید. رله باید در مسیر یکی از دو سیم متصل به مصرف کننده وصل شود. برای مثال من یک سیم را از طرفی به یک لامپ و از طرف دیگر به یک دوشاخه وصل کرده‌ام. سپس یکی از این دو سیم را قطع کرده و محل قطع‌شدگی را به دو پایه خروجی رله وصل کنید. یک سنسور حرکت را نیز به پایه ٣ آردوینو وصل کنید.

مشاهده تصویر
آموزش رله با آردوینو

برنامه زیر را بر روی آردوینو آپلود کنید.

//*
automee
Arduino Tutorial Series
Author: Davood Dorostkar
Website: www.automee.ir
*/

#define pirPin 3
#define relayPin 2
int lastState = HIGH;

void setup()
{
  pinMode(relayPin, OUTPUT);
  pinMode(pirPin, INPUT);
}

void loop()
{
  if (digitalRead(pirPin))
  {
    digitalWrite(relayPin, LOW);
    if (!lastState)
    {
      lastState = !lastState;
    }
  }
  else
  {
    digitalWrite(relayPin, HIGH);
    if (lastState)
    {
      lastState = !lastState;
    }
  }
}

توجه: یادتان باشد که زمانی که از آردوینو با رله استفاده می‌کنید حتما آن را از کامپیوتر جدا کرده و با یک آداپتور به آن برق بدهید.

وقتی از صحت تمام اتصالات مطمئن شدید دوشاخه را به برق وصل کنید. دستتان را جلوی ماژول حرکت داده و نتیجه را مشاهده کنید.

مشاهده تصویر
آموزش رله با آردوینو

کنترل تجهیزات خانگی با ریموت کنترل و رله

تا اینجا با رله آشنا شدید و یک پروژه ساده را با آن راه‌اندازی کردید. حالا بد نیست که با ترکیب چند سنسور و ماژول مختلف یک پروژه جذاب و تا حدی واقعی‌تر را انجام دهید. پروژه‌هایی از این دست می‌تواند در هوشمندسازی خانه یا در اینترنت اشیا مورد استفاده قرار بگیرد. هدف کنترل یک لامپ روشنایی و یک فن که به موتور الکتریکی وصل شده است با ریموت کنترل است. برای انجام این پروژه از آردوینو و رله استفاده می‌کنیم. روشنایی را با یک رله SSR با خروجی AC و موتور را با یک رله EMR با خروجی AC/DC کنترل می‌کنیم. موتور را به یک منبع تغذیه DC با ولتاژ متناسب و لامپ را مانند قبل به جریان AC وصل کنید. برای اطلاعات بیشتر در مورد موتور می‌توانید آموزش راه‌اندازی موتور DC را مطالعه کنید. پایه‌های ٣ آردوینو را به رله موتور و پایه ٢ را به رله روشنایی وصل کنید. پین ١١ را نیز مانند به صورتی که در آموزش سنسورهای اینترنت اشیا توضیح داده شد به یک گیرنده IR وصل کنید. توجه کنید که رله‌های مورد استفاده در این پروژه از نوع Low Level Trigger هستند.

مشاهده تصویر
آموزش رله با آردوینو

حالا کد زیر را بر روی آردوینو آپلود کنید.

/*
automee
Arduino Tutorial Series
Author: Davood Dorostkar
Website: www.automee.ir
*/

#define fanPin 3
#define lampPin 2
#include <IRremote.h>
IRrecv irrecv(11);
decode_results results;

String readIR()
{
  String commandIR;
  if (irrecv.decode(&results))
  {
    switch (results.value)
    {
    case 3810010651:
      commandIR = "CH-";
      break;
    case 5316027:
      commandIR = "CH";
      break;
    case 4001918335:
      commandIR = "CH+";
      break;
    case 1386468383:
      commandIR = "PREV";
      break;
    case 3622325019:
      commandIR = "NEXT";
      break;
    case 553536955:
      commandIR = "PLAY/PAUSE";
      break;
    case 4034314555:
      commandIR = "VOL-";
      break;
    case 2747854299:
      commandIR = "VOL+";
      break;
    case 3855596927:
      commandIR = "EQ";
      break;
    case 3238126971:
      commandIR = "0";
      break;
    case 2538093563:
      commandIR = "100+";
      break;
    case 4039382595:
      commandIR = "200+";
      break;
    case 2534850111:
      commandIR = "1";
      break;
    case 1033561079:
      commandIR = "2";
      break;
    case 1635910171:
      commandIR = "3";
      break;
    case 2351064443:
      commandIR = "4";
      break;
    case 1217346747:
      commandIR = "5";
      break;
    case 71952287:
      commandIR = "6";
      break;
    case 851901943:
      commandIR = "7";
      break;
    case 465573243:
      commandIR = "8";
      break;
    case 1053031451:
      commandIR = "9";
      break;

    default:
      break;
    }
    irrecv.resume();
  }
  return commandIR;
}

void doLamp(const String &input)
{
  if (input == "VOL-")
  {
    digitalWrite(lampPin, HIGH);
  }
  else if (input == "VOL+")
  {
    digitalWrite(lampPin, LOW);
  }
}

void doFan(const String &input)
{
  if (input == "CH-")
  {
    digitalWrite(fanPin, HIGH);
  }
  else if (input == "CH+")
  {
    digitalWrite(fanPin, LOW);
  }
}

void arduinoInit()
{
  digitalWrite(fanPin,HIGH);
  digitalWrite(lampPin,HIGH);
}
void setup()
{
  pinMode(fanPin, OUTPUT);
  pinMode(lampPin, OUTPUT);
  irrecv.enableIRIn();
  arduinoInit();
}

void loop()
{
  String commandIR = readIR();
  if (commandIR == "CH-" || commandIR == "CH+")
  {
    doFan(commandIR);
  }
  if (commandIR == "VOL-" || commandIR == "VOL+")
  {
    doLamp(commandIR);
  }
}

در این برنامه تابعdoLampوdoFanبه ترتیب برای روشن و خاموش کردن لامپ و موتور تعریف شده‌اند. همچنین برای اینکه وضعیت دستگاه‌ها در ابتدای اجرای برنامه خاموش باشد، تابعarduinoInitتعریف شده است. سایر موارد مانند گذشته است. آردوینو را از کامپیوتر جدا کرده و به یک آداپتور جداگانه وصل کنید. اتصال برق موتور و لامپ را برقرار کرده، با استفاده کلیدهای -VOL و +VOL لامپ و با کلیدهای -CH و +CH موتور را کنترل کنید. در این پروژه باید کلیدهای ریموت کنترل را تنظیم کرده باشید. روش تنظیم ریموت کنترل در آموزش سنسورهای اینترنت اشیا آمده است.

مشاهده تصویر
آموزش رله با آردوینو

نتیجه‌گیری

در این آموزش با انواع رله‌ها، مزایای هر کدام و نحوه استفاده از آنها آشنا شدید. از آنجا که بسیاری از وسایل و دستگاه‌ها با ولتاژ و جریان‌های بالا کار می‌کنند، رله یک عضو مهم در طراحی و ساخت پروژه‌ها و سیستم‌های هوشمند خانگی و صنعتی است.

در آموزش بعدی نحوه کار با سنسورهای شتاب و جهت‌یابی را یاد خواهید گرفت.

معرفی و راه‌اندازی انواع IMU با آردوینو
معرفی و راه‌اندازی انواع IMU با آردوینو
در این آموزش یک ابزار مهم برای موقعیت یابی به نام IMU را معرفی و نحوه راه اندازی آن با آردوینو را بررسی می‌کنیم.
زمان مطالعه: 54 دقیقه

نظرات شما باعث بهبود محتوای آموزشی ما می‌شود. اگر این آموزش را دوست داشتید، همین‌طور اگر سوالی در مورد آن دارید، از شنیدن نظراتتان خوشحال خواهیم شد.

1038KB
نام فایل: datasheet_1.rar
آیا این مطلب برایتان مفید بود؟
بله خیر
برای ثبت نظر وارد حساب خود شوید.
یحیی چک نژاد
9 ماه پیش
1
3/ 5

سلام چطور میشه بجای سنسور تشخیص حرکت و سنسور مادون قرمز برای تشخیص خط و بجای لامپ موتور  dc گذاشت

علی ساریخانی
علی ساریخانی
8 ماه پیش
در این پروژه از موتور dc استفاده شده و دقت کنید که موتور dc از یک منبع تغذیه جداگانه تامین می شود و فقط وظیفه قطع و وصل کردن جریان به عهده ماژول رله هست. اگر بخواهید به سرعت موتور dc هم کنترل داشته باشید بایستی از درایور به جای رله استفاده کنید. به جای سنسور تشخیص حرکت هم می توان سنسور مادون قرمز یا هر سنسور دیگری استفاده کرد ولی باید در کد برنامه تغییرات متناسب با سنسور داده شود.