دمج الوحدات · الدرس 3.6
المرحّل (Relay)
العودة إلى الدروسالتعرف على المرحّل (Relay)
ستتعلم استخدام المرحّل (Relay)، وهو مفتاح يعمل بالكهرباء.
المكونات المطلوبة
- لوحة أردوينو (ELEGOO UNO R3) ولوحة تجارب (Breadboard) 830 نقطة.
- ريشة مروحة (Fan Blade) ومحرك التيار المستمر (DC Motor) بجهد 3–6V.
- دائرة قيادة المحرك (L293D IC) والمرحّل (Relay) 5V.
- وحدة تغذية (Power Supply Module) ومحول طاقة (9V1A Adapter) وثمانية أسلاك ذكر إلى ذكر (Male to Male Jumper Wires).
المبدأ والتطبيقات
تستخدم مرحلات كثيرة مغناطيسًا كهربائيًا لتشغيل المفتاح ميكانيكيًا، بينما تستخدم مرحلات الحالة الصلبة مبادئ أخرى. تفيد حين نتحكم في دائرة بإشارة قليلة القدرة مع عزل كهربائي كامل بين التحكم والحمل، أو في عدة دوائر بإشارة واحدة.
استعملت المرحلات الأولى في التلغراف بعيد المسافة لإعادة إرسال الإشارة من دائرة إلى أخرى، ثم في مقاسم الهاتف والحواسيب المبكرة لتنفيذ العمليات المنطقية.
يسمى النوع القادر على تشغيل محرك أو حمل عالي القدرة Contactor. تتحكم مرحلات الحالة الصلبة دون أجزاء متحركة باستخدام أشباه الموصلات. تستخدم مرحلات بخصائص معايرة، وأحيانًا عدة ملفات، للحماية من الحمل الزائد والأعطال؛ وتؤدي أجهزة رقمية تسمى Protective Relays هذه الوظيفة في شبكات القدرة الحديثة.
قد تحتاج إلى ثني أحد أطراف المرحّل (Relay) قليلًا لتركيبه في لوحة التجارب (Breadboard)، كما في الرسم.

توصيل الدائرة


تشغيل البرنامج
افتح ملف البرنامج Relay.ino من ملفات الدرس في بيئة Arduino IDE. بعد إتمام التوصيلات، وصّل لوحة أردوينو (UNO R3 Board) بالحاسوب بكابل توصيل (USB Cable)، ثم اضغط زر Upload (رفع) لنقل البرنامج إلى اللوحة وتشغيله عليها.
إذا تعذر نقل البرنامج إلى اللوحة، فراجع قسم «رفع البرنامج ومعالجة خطأ الاتصال» في الدرس 1.5 «وميض LED وإضافة المكتبات» للتحقق من اتصال USB واختيار نوع اللوحة والمنفذ التسلسلي في بيئة Arduino IDE.
شغّل مفاتيح التغذية بعد الرفع. يُفعَّل المرحّل (Relay) وتسمع صوت تبديل نقاط التلامس، ثم يدور المحرك؛ وبعد مدة يُفصَل المرحّل (Relay) ويتوقف المحرك.
الكود
Relay/Relay.ino
//www.elegoo.com
//2016.12.12
/************************
Exercise the motor using
the L293D chip
************************/
#define ENABLE 5
#define DIRA 3
#define DIRB 4
int i;
void setup() {
//---set pin direction
pinMode(ENABLE,OUTPUT);
pinMode(DIRA,OUTPUT);
pinMode(DIRB,OUTPUT);
Serial.begin(9600);
}
void loop() {
//---back and forth example
Serial.println("One way, then reverse");
digitalWrite(ENABLE,HIGH); // enable on
for (i=0;i<5;i++) {
digitalWrite(DIRA,HIGH); //one way
digitalWrite(DIRB,LOW);
delay(750);
digitalWrite(DIRA,LOW); //reverse
digitalWrite(DIRB,HIGH);
delay(750);
}
digitalWrite(ENABLE,LOW); // disable
delay(3000);
for (i=0;i<5;i++) {
digitalWrite(DIRA,HIGH); //one way
digitalWrite(DIRB,LOW);
delay(750);
digitalWrite(DIRA,LOW); //reverse
digitalWrite(DIRB,HIGH);
delay(750);
}
digitalWrite(ENABLE,LOW); // disable
delay(3000);
}