طريقة استخدام الريلاي مع الاردوينو 



في هذا الدرس سنقوم بتعلم كيفية استخدام الريلاي موديول مع بورد الاردوينو والتحكم به واستخدامه بالتحكم بالاحمال الكبيره مثل التحكم بتشغيل ثلاجه او ضوء وسنقوم بأستخدامه بمشروع عن طريق مستشعر الحركه الى النظام الذي سنقوم بصنعه .


مقدمه عن الريلاي ( ما هو وما استخدامته )

الريلاي مودويل هو مصمم للتحكم بالاحمال الكبيره مثل ضوء منزل او ثلاجه او تلفاز من خلال الانظمه ذات الجهد المنخفض
مثل الاردوينو , حيث يتم التحكم به من خلال اشاره 5 فولت او 0 فولت يتم ارسالها عن طريق الاردوينو 
حيث تقوم احداها بفتح التيار للجهاز مما يعمل على تشغيله والاخرى تقوم بإغلاق التيار عن الجهاز لتقوم بإطفاءه .
فهو يعمل كمفتاح المصابيح الذي في البيت لاكن الفرق بينهما ان مفتاح مصباح غرفتك يعمل عن طريق حركه ميكانيكيه تقوم بتطبيقها مما يجعله يقوم بتوصيل التيار للمصباح او فصل التيار عنه .
يقوم الريلاي مودويل بوصل وفصل التيار مثل مبدأ المفتاح اليديو لاكنه يختلف عنه بطريقة التحكم به حيث انه لا يحتاج الى تطبيق حركه ميكانيكيه عليه ليقوم بعمله بل انه يقوم بتلقي اوامر الفتح والاغلاق عن طريق اوامر على شكل اشاره كهربائيه ( 0 , 5 ) فولت حيث تقوم احدهما بتوصيل التيار اما الاخرى تقوم بفصله .


مداخل ومخارج الريلاي موديول 


فيما يلي صوره تبين مداخل ومخارج الريلاي موديول حيث تبين المخارج على اليسار للجهد المرتفع مثل ضوء غرفه والمداخل التي على اليمين وهي للتحكم عن طريق الاردوينو 





كما هو موضح هنا ان للريلاي ثلاث مخارج ( com , NC ,NO ) ومهام كل واحد منهم كما يلي : 







اسم المدخل/المخرج
وظيفته
COM
وهو المدخل الذي سنقوم من خلاله بأدخل السلك الذي يحمل الفولتيه لتوزيعه فيما بعد على المخرج الذي نريده
NO
هذا المخرج مفتوح بشكل تلقائي اي انه في الحاله الطبيعيه دون تزويد الريلاي بأوامر عن طريق الاردوينو يكون هذا المخرج غير متصل مع مصدر الفولتيه COM ويكون المصباح مطفئ
NC
هذا المخرج يكون مغلق بشكل تلقائي اي ان الحاله الطبيعيه له دون تزويده بأوامر من الريلاي يكون متصل مع مصدر الفولتيه COM ييكون المصباح مضئ



مداخل التحكم بأستخدام الاردوينو 


هناك اربع مداخل في هذا الموديول يجب الانتباه لها وهي :


اسم المدخل/المخرج
وظيفته
VCC
وهذا مدخل التغذيه بالطاقه الموجبه من خلال مصدر الطاقه او الاردوينو
IN1
مدخل التحكم بحالة الريلاي رقم 1 (NO,NC) "يجب ان يتم توصيله الى مخرج ديجيتال في الاردوينو"
IN2
مدخل التحكم بحالة الريلاي رقم 2 (NO,NC) "يجب ان يتم توصيله الى مخرج ديجيتال في الاردوينو"
GND
وهذا مدخل التغذيه بالطاقه السالبه (0) من خلال مصدر الطاقه او الاردوينو


ملاحظه : اذا قمت بتغذية الريلاي من مصدر طاقه مستقل عن الاردوينو إحرص على ان يكون GND الاردوينو موحد مع GND مصدر الطاقه الخارجي


ملاحظه : المدخلين على اليسار JD-VCC و VCC اللذين تم توصيلهما مع بعضهما من خلال jumper ازرق اللون يدلان على ان الريلاي غير معزول عن الاردوينو بشكل كامل او بوصف ادق ان VCC الريلاي غير معزول عن VCC الاردوينو واذا اردت ان تقوم بعزله كل ما عليك هو ازالة ال Jumper الازرق واتوصيل مدخل JD-VCC الى مصدر طاقه مستقل .

مثال : التحكم في ضوء عن طريق مستشعر الحركة و الريلاي موديول


في المثال الاتي سنقوم بصنع نظام يقوم بتشغيل وإطفاء الضوء اوتوماتيكيا في حال قام باستشعار حركة  ما في ما يلي توصيلات النظام مع الاردوينو , حيث قمت بتوصيل طرفي الضوء على مخرجي (COM , NO).



الكود البرمجي :



    int relay = 8;
volatile byte relayState = LOW;

// PIR Motion Sensor is connected to D2.
int PIRInterrupt = 2;

// Timer Variables
long lastDebounceTime = 0;  
long debounceDelay = 10000;

void setup() {
  // Pin for relay module set as output
  pinMode(relay, OUTPUT);
  digitalWrite(relay, HIGH);
  // PIR motion sensor set as an input
  pinMode(PIRInterrupt, INPUT);
  // Triggers detectMotion function on rising mode to turn the relay on, if the condition is met
  attachInterrupt(digitalPinToInterrupt(PIRInterrupt), detectMotion, RISING);
  // Serial communication for debugging purposes
  Serial.begin(9600);
}

void loop() {
  // If 10 seconds have passed, the relay is turned off
  if((millis() - lastDebounceTime) > debounceDelay && relayState == HIGH){
    digitalWrite(relay, HIGH);
    relayState = LOW;
    Serial.println("OFF");
  }
  delay(50);
}

void detectMotion() {
  Serial.println("Motion");
  if(relayState == LOW){
    digitalWrite(relay, LOW);
  }
  relayState = HIGH;  
  Serial.println("ON");
  lastDebounceTime = millis();
}