آردوینو پروژه های آردوینو

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

create-4-channel-timer-relay-with-arduino-digispark
نوشته شده توسط معین صابری

رله های تایمر دار یکی از مهم ترین و پرکاربردترین ابزارها در صنایع مختلف به شمار می روند. به کمک این ابزار می توان اجرای فرایندها را زمانبندی نمود. به عنوان مثال شما می توانید فعال بودن و غیر فعال بودن یک موتور الکتریکی را زمانبندی کنید؛ یا به عنوان کاربردی دیگر، شما می توانید پخش یک فرمان یا آلارم را در یک سالن، کنترل کنید. در طرف دیگر، از آنجاییکه رله های تایمر در سالن ها هم کاربرد دارند، از این ابزار می توان در کنترل روشنایی هم استفاده نمود. در این آموزش، قصد داریم تا به طراحی و پیاده سازی یک رله تایمر دار بپردازیم. به کمک این دستگاه شما می توانید میزان روشن و یا خاموش بودن یک وسیله برقی را کنترل نمایید. این کیت که از برد آردوینو UNO بهره می برد، قادر است تا به طور همزمان ۴ رله را کنترل کند. همچنین جهت دریافت فرمان از کاربر برای کنترل رله، این پروژه از رابط سریال UART استفاده می نماید. در این آموزش که قصد به پیاده سازی این دستگاه کلیدی و کاربردی را داریم، به صورت کامل به شرح جزییات و نحوه پیاده سازی آن خواهیم پرداخت. در ادامه پروژه رله تایمر ۴ کاناله، در ادامه با مرجع تخصصی آردوینو به زبان فارسی ، دیجی اسپارک همراه باشید.

 


قابلیت های رله تایمر ۴ کاناله


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

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

  • دارای ۴ کانال کنترل رله
  • قابلیت کنترل همزمان ۴ رله
  • قابلیت تعریف زمانبندی از طریق رابط سریال UART
  • قابلیت تغییر برنامه رله ها در حالت اجرا
  • قابلیت توقف اضطراری رله ها در هنگام اجرا
  • قابلیت تعریف مدت زمان روشن/خاموش بودن رله
  • قابلیت تعریف تعداد دفعات اجرا(LOOP)

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

 


قطعات پروژه رله تایمر ۴ کاناله


پس از آشنایی با امکانات پروژه رله تایمردار، نوبت به بررسی قطعات و نقش هرکدام می رسد. جهت اجرای این پروژه، نیازمند یک میکروکنترلر یا برد پردازشی هستیم.  در این پروژه ما از برد آردوینو UNO به عنوان هسته پردازش مرکزی استفاده می کنیم. به کمک این برد، فرامین کاربر دریافت شده و مطابق دستورات، رله ها زمانبندی خواهند شد. از آنجاییکه برد آردوینو UNO دارای رابط سریال UART است، بدین ترتیب فرامین از این طریق دریافت خواهد شد.

برد آردوینو در ساخت رله تایمر 4 کاناله - دیجی اسپارک

 

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

ماژول رله تایمر 4 کاناله با آردوینو - دیجی اسپارک

 

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

 


شماتیک و اتصالات پروژه رله تایمر ۴ کاناله


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

شماتیک و اتصالات پروژه رله تایمر 4 کاناله آردوینو - دیجی اسپارک

 

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

  • اتصال پایه VCC هررله به تغذیه ۵ ولت آردوینو
  • اتصال پایه GND هر رله به GND آردوینو
  • اتصال پایه IN هر کدام از رله ها به پایه مخصوص آن در برد آردوینو

پس از برقراری اتصالات، نوبت به کدهای آن می رسد. قسمت بعد به این موضوع اختصاص دارد.

 


کدهای پروژه رله تایمر ۴ کاناله


پس از آشنایی با اتصالات پروژه رله تایمر ۴ کاناله، نوبت به کدهای آن می رسد. این کدها در زیر قرار گرفته که می توانید روی برد خود آپلود کنید.

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

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

 


اجرای پروژه رله تایمر ۴ کاناله


پس از آپلود کد، نوبت به اجرای پروژه رله تایمر ۴ کاناله می رسد. برای اجرای پروژه، ابتدا آردوینو را به کمک آداپتور به برق متصل کنید.  سپس مبدل سریال خود را به شکل زیر به برد آردوینو متصل کنید.

  • اتصال پایه TX مبدل سریال به پایه RX(شماره ۰) آردوینو
  • اتصال پایه GND مبدل سریال به پایه GND آردوینو

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

ON TIME,OFF TIME, LOOP COUNT!RELAY NUMBER

مطابق فرمت فوق، از چپ به راست پارامترها به دستگاه باید ارسال شوند. این پارامترها به شکل زیر تعریف می گردند.

شرح پارامتر
مدت زمان روشن بودن رله ON TIME
مدت زمان خاموش بودن رله OFF TIME
تعداد دفعات تکرار خاموش/روشن بودن LOOP COUNT
شماره خروجی رله RELAY NUMBER

 

در رابطه با جدول فوق نکات زیر را مورد توجه قرار دهید.

  • مدت زمان خاموش و روشن بودن رله بر حسب میلی ثانیه تعیین می گردد. به عنوان مثال برای تعیین مدت زمان ۱۰ ثانیه، باید ۱۰۰۰۰ (ده هزار) تعیین گردد.
  • شماره های مربوط به رله، از شماره ۲ الی ۵ (مطابق شماتیک) تعیین می گردند.

پس از آشنایی با این نکات، اقدام به ارسال فرمان به رله می نماییم. به همین منظور، فرض کنید برای رله شماره ۲، می خواهیم ۵ ثانیه زمان فعال، ۳ ثانیه زمان غیر فعال تعیین کنیم. همچنین تمایل داریم تا این چرخه برای ۱۰ مرتبه تکرار شود، به همین منطور فرمان به شکل زیر به برد ارسال می گردد.

۵۰۰۰,۳۰۰۰,۱۰!۲

با ارسال این فرمان به برد شاهد اجرای عملیات خواهیم بود.

کنترل رله تایمر 4 کاناله از طریق سریال مانیتور آردوینو - دیجی اسپارک

 

در همین حال شما می توانید برای سایر رله ها نیز به فرمت فوق فرمان ارسال کنید. به عنوان مثال با ارسال فرمان {۶۰۰۰,۴۰۰۰,۲۰!۳} رله شماره ۳ برای ۶ ثانیه روشن، ۴ ثانیه خاموش بوده و این چرخه برای ۲۰ مرتبه تکرار می گردد.

نهایی سازی پروژه رله تایمر 4 کاناله آردوینو - دیجی اسپارک

 

توجه: با ارسال فرمان {۰,۰,۰!relay number} می توانید فعالیت رله را متوقف کنید. به عنوان مثال برای متوقف کردن رله شماره ۳ به صورت {۰,۰,۰!۳} بایستی عمل کنید.

 


تحلیل کدهای پروژه رله تایمر ۴ کاناله


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

شرح تابع
تنظیمات رجیستر تایمر شماره ۰ set_timer
تابع روتین وقفه تایمر ISR(TIMER0_COMPA_vect)
تابع روتین وقفه سریال serialEvent()
کنترل فرایند کاری رله شماره ۲   check_timer2()
کنترل فرایند کاری رله شماره ۳ check_timer3()
کنترل فرایند کاری رله شماره ۳ check_timer4()
کنترل فرایند کاری رله شماره ۴ check_timer5()

 


لوازم مورد نیاز


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

 


جمع بندی


رله های تایمر دار یکی از مهم ترین و پرکابردترین ابزارها در صنایع و پروژه های مختلف به شمار می روند. به کمک این ابزار شما می توایند فعالیت وسایل برقی نظیر لامپ ها، فن ها، آلارم ها، موتورهای الکتریکی و …. را زمانبندی کنید. در این پروژه اقدام به طراحی و پیاده سازی یک سیستم رله تایمر دار ۴ کاناله نمودیم. به کمک این سیستم کاربر قادر به کنترل همزمان ۴ کانال رله خواهد بود. در طرف دیگر، ارسال فرمان به دستگاه به سادگی و از طریق پورت سریال UART صورت می پذیرد. این پروژه بر مبنای برد آردوینو UNO توسعه یافته و قادر است تا بادریافت فرمان از کاربر، ۴ رله را کنترل نماید. طراحی و توسعه این دستگاه به گونه ای بوده که ۴ رله به طور همزمان و بدون ایجاد تداخل در کار یکدیگر، می توانند به فعایلت خود ادامه دهند.

 

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

 

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

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۰ دیدگاه

  • سلام مهندس بسیار عالی بود
    فقط اگه به این پروژه یه ماژول بلوتوث هم اضافه می‌کردید تا با نرم افزار این فرامین را برای اردوینو ارسال کرد عالی میشد
    مهندس نمیشه یه تایمر logo را با اردوینو بسازیم ؟
    که با خود نرم افزار logo بشه کنترلش کرد ؟

    • سلام و متشکرم از شما
      بله بلوتوث ایده جالبی هست، حتی می توان از esp8266 برای فرمان از طریق وای فای استفاده ی کند.

  • با سلام و تشکر از مطلب خوبتون
    من یه مشکل عمده که با رله ۵ولتی دارم اینه که وقتی به nodmcu و ولتاژ ۳.۳ وصلش میکنم گاهی عمل نمیکنه. فکر میکنم میدان مغناطیسی حاصل قدرت کافی رو نداره. من از رله‌های حالت جامد omran هم استفاده کردم ولی ولتاژ خروجی ۲۲۰ولت این رله‌ها فقط ۲ آمپر هستش و پاسخگوی بعضی از نیازها نیست. ممنون میشم در این زمینه راهنمایی کنید.
    با تشکر

    • سلام و متشکرم از شما
      در صورتیکه به ۳V3 متصل کرده و باز هم عمل نمی کند، این مورد را به حساب ضعف تغذیه باید گذاشت. آداپتور شما چند آمپر است؟

        • نه نیازی نیست
          کابل های اتصال از سمت ESP به ماژول رله را کنترل کنید. ظاهرا کابل ها ضعیف باشند. از چه کابلی استفاده می کنید؟

            • پس مشکلی جای دیگری است. تغذیه ماژول را به ۵ ولت متصل کنید. حالا خروجی GPIO را به کمک ترانزیستور به ۵ ولت برسانید. به این ترتیب مشکل باید حل شود.