در ادامه آموزش های پلتفرم بلوک دینو این بار قصد داریم با نحوه راه اندازی رله یکی از قطعات پر کاربرد در صنعت مکانیک و البته الکترونیک که به ویژه در اتوماسیون هوشمند و اینترنت اشیا کاربرد دارد آشنا شویم ، در این اموزش همچنین توصیحاتی راجب عملکرد رله خواهیم داد .
مقدمه
رله در واقع یک کلید هوشمند است که به ما اجازه کنترل ولتاژ خروجی مدار را می دهد برای مثال شما فصد دارید ولتاژ 220 AC را کنترل و به آردینو بدهید برای این کار استفاده از رله به خوبی نیاز فرد را برطرف میکند ، رله ها به دو شکل EMR یا مکانیکی یا به شکل SSR که حالت کوچکتری هستند وجود دارد حالت های عملکرد آنها هم به SPST یا تک کانال و عمده ترین رله ها هم SPDT یا چند کانال هستند ماژول مورد استفاده ما از نوع SPST می باشد ،که برای آشنای بیشتر این کاتالوگ را بخوانید.
انواع رله ها
- Electromechanical Relay
- Solid State Relay
Electromechanical Relay
در رله های EMR به اشاره کرد که به راحتی قابل اجرا می باشد از مزیت های دیگر این رله ها قیمت ارزان و توانای کنترل جریان و ولتاژ بالا اشاره کرد در تصویر زیر یک نمونه از این نوع رله را مشاهده می کنیم، از کاربرد های این نوع از رله ها می توان به تبدیل منبع جریان Ac به DC اشاره کرد.
رله در حالت الکترومکانیکی
Solid State Relay
در رله های SSR بر خلاف رله های الکترومکانیکی همه چیز طبق برنامه پیش فرض توسط رله انجام می شود و همه فعالیت رله توسط مدار داخلی آن به انجام می رسد در واقع ما هیچ گونه فشار مکانیکی در رله ها مشاهده نمی کنیم در درون این رله ها از یک ماسفت برای کنترل ولتاژ بالا استفاده شده است ، از مزیت های دیگر این رله عدم نویز خروجی و همچنین سرعت بالا در سویچینگ اشاره کرد از معایب این رله ها هم گرمای بالای آنها و قیمت نسبتا گران اشاره کرد در تصویر زیر یک نمونه رله SSR مشاهده می کنید.
رله SSR در حالت SPDT
حالا قصد داریم در این آموزش چند پروژه با ماژول رله در بلوک دینو کار کنیم و نحوه برنامه نویسی آن را توضیح دهیم لازم به ذکر است کاربرد رله در صنعت زیاد بوده و ما در اینجا فقط از بخشی از امکانات رله با توجه به پلتفرم بلوک دینو می پردازیم، در ابتدا یک پروژه راه اندازی رله با فعال سازی خودکار رله پیاده سازی کردیم.
پروژه راه اندازی رله
در اولین پروژه این آموزش قصد داریم رله را به آردینو اتصال دهیم و با استفاده از آردینو رله طبق برنامه ما عمل کند برای چنین کاری ما به یک رله ، مقاومت نیاز داریم در ابتدا شماتیک پروژه را با استفاده از fritzing مشاهده می کنیم برای دانلود نرم افزار fritzing به این لینک مراجعه کنید.
در پروژه بالا پس از یک وقفه 500 میلی ثانیه رله یک می شود و بعد از وقفه دوم بار دیگر رله این بار صفر می شود این وضعیت تا زمانی که توسط ما انتخاب می شود قابل تغییر می باشد
برنامه نویسی در بلوک دینو
در محیط بلوک دینو گیتهاب شما وقتی وارد می شوید برای استفاده از ماژول ها کافی هست شما به Grove بروید این بخش شامل ماژول های مختلفی می باشد که برای اطلاعات بیشتر از چگونگی و کاربرد ماژول می توانید به گیتهاب مراجعه کنید همچنین می توانید به متن آموزشی ما مراجعه کنید ، در این قسمت ما نیاز داریم رله را به محیط بلوک اضافه کنیم برای این کار به بخش Groveبروید و مانند تصویر زیر ماژول رله را انتخاب کنید.
پس از انتخاب ماژول مثل تصویر بالا رله وارد محیط بلوک دینو می کنید و پورت های خود را انتخاب کنید سپس در حلقه تابع تاخیر اضافه کنید و یکبار رله را صفر و تابع تاخیر را دوباره اضافه کنید طبق این شکل الگوریتم کامل می شود .
سورس بلوک دینو
سورس کد بالا به شکل خیلی بهینه قابل اجرا در آردینو می باشد و شما می توانید سخت افزار را پیاده سازی کنید فقط دقت کنید که در اینجا مصرف کننده ای وجود ندارد و قصد ما این است رله طبق بازه زمانی فعال و غیر فعال شود
سورس آردینو
void setup()
{
pinMode(3, OUTPUT);
pinMode(3, OUTPUT);
}
void loop()
{
digitalWrite(3,HIGH);
digitalWrite(3, HIGH);
delay(500);
digitalWrite(3, HIGH);
delay(500);
}
تست پروژه
در ادامه برای قهم بیشتر پروژه سورس کد خروجی بلوک دینو را با استفاده از پروتیوس تست کردیم که میتونید در ویدیو زیر آن را ببینید برای دانلود پروتیوس از این لینک استفاده کنید
پروژه رله با LED
در پروژه بعدی حالا قصد داریم یک رله با استفاده از pushbutton بسازیم خروجی پروژه هم یک LED می باشد که در صورت فشردن کلید همزمان با رله یک می شود .
شماتیک پروژه
سورس کد بلوک دینو
سورس آردینو
#define LED 2
#define pushbutton 6
#define Relay 4
void setup()
{
pinMode(LED, OUTPUT); //LED pinoout//
pinMode(Pushbutton, INPUT); //Pushbutton pinout//
pinMode(Relay, OUTPUT); //Relay pinout//
Serial.begin(9600);
}
void loop()
{
digitalWrite(2,HIGH);
Serial.println(digitalRead(6));
digitalWrite(4,HIGH);
if (digitalRead(6) == HIGH) {
digitalWrite(2, HIGH);
digitalWrite(4, HIGH);
} else {
digitalWrite(2, LOW);
digitalWrite(4, LOW);
}
}
تست پروژه
پروژه راه اندازی رله با دو کلید
در این پروژه قصد داریم ماژول رله با استفاده از دو کلید پیاده کنیم الگوریتم ما به این شکل است که هر بار کلید اول زده شود رله یک شود و در حالتی که کلید دوم زده شود رله صفر شده و در این حالت کنترلی بر ولتاژ خروجی نخواهد داشت.
شماتیک پروژه
سورس بلوک دینو
سورس آردینو
void setup()
{
pinMode(6, OUTPUT); // Relay//
pinMode(3, INPUT); //Pushbutton//
PinMode(2, INPUT); //Pushbutton
Serial.begin(9600);
pinMode(2, INPUT);
}
void loop()
{
// Relay pinout
digitalWrite(6,HIGH);
// Pushbutton
Serial.println(digitalRead(3));
// pushbutoun
Serial.println(digitalRead(2));
if (digitalRead(3) == HIGH) {
// Turnon Relay
digitalWrite(6, HIGH);
}
if (digitalRead(2) == HIGH) {
// Turnoff Relay
digitalWrite(6, LOW);
}
}