آموزش آردوینو

آموزش کنترل رله با برد آردوینو (کنترل وسایل)

سلام. آموزش نحوه کنترل رله با آردوینو را آماده کرده ایم. (آموزش Arduino قسمت 8) را آماده کرده ایم.

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

ما در قسمت قبلی سری آموزش های آردوینو ، با نحوه استفاده از شیفت رجیستر در Arduino آشنا شدیم. الان در قسمت 8 آموزش آردوینو هستیم. لطفا برای درک عمیق تر مطالب، آموزش ها را از قسمت اول بخوانید.

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

رله چیست و چگونه کار میکند ؟

رله یک سوئیچ الکترومغناطیسی است که توسط جریان کم کنترل می شود و برای روشن و خاموش کردن جریان بزرگتر مورد استفاده قرار می گیرد. با استفاده از جریان کوچک می توان حالت رله را تغییر داد. رله گزینه خوبی برای کنترل دستگاه های AC (جریان متناوب) با استفاده از یک جریان DC بسیار کوچکتر است. رله دارای پنج پایه به شرح زیر است :

رله چیست و چگونه کار میکند ؟

هنگامی که هیچ ولتاژی به سیم پیچ اعمال نشود، Com به NC متصل است. و هنگامی که مقدار ولتاژ به سیم پیچ اعمال شود، میدان الکترو مغناطیسی تولید میشود که آرماتور متصل به NC را به سمت خود جذب میکند و باعث میشود COM و NO به هم متصل شوند. این کار باعث میشود بتوانیم با استفاده از جریان کمتر مثل جریان برد آردوینو که 5 ولت است، ورود جریان به طور مثال 220 ولت را کنترل کنیم.

رله ها انواع بسیار مختلفی دارند، در اینجا ما از رله با ولتاژ عامل 6 ولت استفاده میکنیم که به ما اجازه میدهد عبور جریان 7 آمپر 250 ولت AC را کنترل کنیم.

جهت کسب اطلاعات بیشتر، مقاله رله چیست را بخوانید.

رله ها اغلب با استفاده از یک مدار درایور کوچک که شامل یک ترانزیستور، دیود و یک مقاومت ترکیب میشوند. ترانزیستور برای تقویت جریان استفاده می شود به طوری که جریان کامل (از منبع DC) می تواند از طریق یک سیم پیچ جریان یابد تا انرژی آن را به طور کامل استفاده کند. از مقاومت برای تهیه بایاس به ترانزیستور استفاده می شود. و هنگام خاموش شدن ترانزیستور از دیود برای جلوگیری از جریان معکوس استفاده می شود.

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

مدار درایور رله به همراه قطعات مورد نیاز آن در تصویر زیر نشان داده شده است.

مدار و قطعات ماژول رله

نحوه اتصال رله به برد آردوینو

در تصویر زیر نحوه اتصال یک رله به برد Arduino را مشاهده میکنید. همانطور که میبینید ما از پین A0 آردوینو برای کنترل رله استفاده کرده ایم.

قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

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

در این مدار کنترل رله ما از آردوینو برای کنترل رله از طریق ترانزیستور BC547 استفاده کرده ایم. ما پایه ترانزیستور را از طریق یک مقاومت 1k به pin A0 وصل کرده ایم. یک لامپ AC برای نمایش عملکرد استفاده می شود. از آداپتور 12v برای تغذیه مدار استفاده می شود.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

کار ساده است ، ما باید پین RELAY یعنی PIN A0 را فعال کنیم تا ماژول رله روشن شود و پین رله را غیرفعال کنیم تا ماژول رله خاموش شود. چراغ / وسیله AC طبق رله روشن و خاموش می شود.

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

در این قسمت ما به طور کامل با نحوه برنامه نویسی رله در نرم افزار Arduino آشنا میشویم.

در قسمت اول کد ما پین رله را تعریف میکنیم که همانطور که گفتیم A0. همچنین برای اینکه برنامه از سادگی در بیاید ما یک متغیر تعریف میکنیم به نام interval که نمایان گر 1000 است. کمی جلوتر میفهمید به چه کار می آید.

#define relay A0 // تعریف پین رله
#define interval 1000 // تعریف 1000

سپس به تابع void setup میرسیم، در این قسمت پین رله (A0) را به عنوان پین خروجی تعریف میکنیم.

void setup() {
  pinMode(relay, OUTPUT); // تنظیم پین رله به عنوان خروجی
}

سپس به اصل کار میرسیم که تابع void loop است. هرچه در این تابع قرار دهیم پی در پی تکرار میشود. ما در این قسمت کد ها را طوری مینویسیم که رله ما خاموش و روشن شود.

void loop()
{
   digitalWrite(relay, HIGH); // رله روشن
   delay(interval); // به مدت تعریف شده 1 ثانیه
   digitalWrite(relay, LOW); // رله خاموش
   delay(interval); // به مدت تعریف شده 1 ثانیه
}

در قسمت بالا میبینید که در روبروی Delay که همان تاخیر است به جای عدد از کلمه interval استفاده کرده ایم. این کار باعث میشود در برنامه هایی که تعداد زیادی تاخیر شبیه به هم وجود دارد ، تغییر زمان انتظار راحت تر شود.

به طور مثال ما میخواهیم 10 ال ای دی را به فلاشر تبدیل کنیم که هر 1 ثانیه چشمک بزنند. اینجا اگر برای هر ال ای دی ، یک Delay عددی بنویسیم، در صورتی که بخواهیم مقدار تاخیر را به 2 ثانیه تبدیل کنیم باید 10 قسمت از کد را تغییر دهیم. اما اگر مثل اینجا یک کلمه را به جای عدد تعریف کنیم فقط با تغییر عدد تاخیر در اول کد، تاخیر برای هر 10 ال ای دی تغییر میکند.

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

#define relay A0
#define interval 1000
void setup() {
  pinMode(relay, OUTPUT);
}
void loop()
{
   digitalWrite(relay, HIGH);
   delay(interval);
   digitalWrite(relay, LOW);
   delay(interval);
}
4 (22 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

23 نظر

  1. امیر راد گفت:

    سلام، اگه من بخوام، یک چراغ خواب با اردوینو درست کنم، که با ولتاژ 220 ولت کار کنه، باید چیکار کنم؟
    ممنون میشم اگه کمکم کنید

    1. محمد رحیمی گفت:

      سلام عزیز
      کافی هست از یک رله 5 استفاده کنید. اگر در کار با آردوینو تازه وارد هستید برای یادگیری برنامه نویسی میتوانید دوره آموزش آردوینو را مشاهده کنید.

  2. حیدر گفت:

    خیلی مردی مهندس گل

    1. محمد رحیمی گفت:

      سلام عزیز
      خوشحالم که رضایت داشتین

  3. مرجان فرهادیان گفت:

    با سلام و خسته نباشید
    ترانزیستور رو برای محافظت از برد در مقابل جریان کشی رله به عنواک یک واسطه قرار دادیم با اتصال مثبت سیم پیچ به پنج ولت روی برد مشکلی پیش نمیاد؟ چون با روشن شدن رله جریان رله از مسیر ترانزیستور برقرار میشه ولی باز هم پنج ولت برد در مدار هست آسیبی به برد نمیزنه؟

    1. محمد رحیمی گفت:

      سلام عزیز
      خیر مشکلی پیش نمیاد، پایه 5 ولت آردوینو اونو میتونه 0.8 آمپر جریان را خارج کنه.

  4. محمد نصیری گفت:

    سلام وقتتون بخیر و تشکر بخاطر آموزشتون
    اگر بخوایم روشن و خاموش شدن رله وابسته به یک ولتاژ DC ورودی باشه چطور میشه؟
    به فرض اگر ولتاژ 4 ولت به یک پین آردوینو وارد شد رله را روشن کند

    1. محمد رحیمی گفت:

      سلام عزیز
      با استفاده از آنالوگ به دیجیتال ولتاژ ورودی رو بدست بیارید و یک شرط اضافه کنید در صورتی که ولتاژ 4 بود رله روشن بشه

  5. علی گفت:

    سلام، من یک ماژول رله دارم که وقتی پایه رله رو خاموش میکنم رله روشن میشه و وقتی روشن میکنم رله خاموش میشه:

    رله روشن:
    digitalWrite(RelayPin, LOW)
    رله خواموش:
    digitalWrite(RelayPin, HIGH)

    چرا این اتفاق می افتد؟

    1. محمد رحیمی گفت:

      سلام عزیز
      بعضی از ماژول های رله اینطور ساخته و پیکربندی شده اند مسئله خاصی نیست

  6. کیان گفت:

    سلام
    موتور 12 ولت رو هم میشه با رله و آردوینو راه اندازی کرد(مشابه همین مدار که برای لامپ بستید)؟ در اینصورت بازم به درایور نیاز داریم؟

    1. محمد رحیمی گفت:

      سلام عزیز
      بله میشه اما استفاده از موتور درایور بهتر هست

  7. الف گفت:

    An error occurred while uploading the sketch

    1. محمد رحیمی گفت:

      ارور کامل رو ارسال کنید

  8. الف گفت:

    سلام خسته نباشید
    من این کد رو وارد می کنم و گزینه ی آپلود رو که می زنم نرم افزار ارور می دهد.
    چه کار باید بکنم؟

    1. محمد رحیمی گفت:

      سلام عزیز
      ارور دریافتی رو اینجا ارسال کنید

  9. رامین گفت:

    سلام درود خدمت مهندس ببخشید اگر بخواهیم 50 عدد رله رو وصل کنیم چطور میشه

  10. رسول گفت:

    سلام من خاموش روشن رله ۲ کانال رو میخام با سیم‌کارت انجام‌بشه همه لوازمشو خریدم .gprs shisld ono به همراه یه uno به همراه پاژول رله ث کانال . اگه میتونید کمک کنید کد بدید ممنون میشم اگر نه بنویسید برام هزینشو میدم ممنون

  11. فروغ گفت:

    سلام، ممنون از مطلب خوبتون، یه سوالی داشتم. من رله رو از لینک زیر خریدم:
    1603804
    نوشته ماژول رله. پس من دیگه نیازی نیست وقتی وصلش میکنم به برد آردوینو، براش ترانزیستور و مقاومت بذارم؟

    1. محمد رحیمی گفت:

      سلام عزیز، خیر نیازی نیست

  12. محمد رضا امیری گفت:

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

  13. حسن گفت:

    سلام وقت بخیر
    من میخوام دوتا جک برقی رو کنترل کنم
    که به چهار رله نیاز دارم
    سوالم اینه
    برای کنترل چهار رله میشه از یک برد اردینو استفاده کرد؟

    1. محمد رحیمی گفت:

      سلام جناب. بله میشه از برد آردوینو استفاده کرد. در دوره آموزشی آردوینو راه اندازی رله به طور کامل توضیح داده شده است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *