كود البحث

استخدام زر ضغط مع أردوينو لتشغيل ريليه ومصباح تيار متردد

استخدام زر ضغط مع أردوينو لتشغيل ريليه ومصباح تيار متردد

في هذا الدرس، سنتعلم كيفية التحكم بمصباح يعمل بالتيار المتردد أو بمصباح LED باستخدام زر ضغط ومرحّل. سيقوم زر الضغط بالتبديل بين تشغيل وإيقاف المصباح، مع الاحتفاظ بحالته حتى بعد تحرير الزر. هذا الإعداد ليس عمليًا فحسب، بل هو أيضًا مقدمة ممتازة للعمل مع المرحلات والأحمال ذات التيار المتردد.

5V LOW-LEVEL trigger relay

مع تقدمنا، سنغطي المكونات اللازمة وتعليمات الأسلاك وكود الأردوينو الذي يجعل هذا المشروع ممكنًا. تأكد من مشاهدة الفيديو المرفق للحصول على دليل بصري وشروحات مفصلة (في الفيديو عند 00:00).

5V LOW-Level triggered Relay module

شرح الأجهزة

بالنسبة لهذا المشروع، سنستخدم وحدة ريليه، ولوحة أردوينو، وزر ضغط. تعمل وحدة الريليه كمفتاح يمكنه التحكم في أحمال التيار المتردد ذات الجهد العالي، مثل المصباح، بينما يتم التحكم بها بواسطة إشارات أردوينو ذات الجهد المنخفض. تحتوي وحدة الريليه على ثلاث أطراف رئيسية لتوصيل الحمل: المشترك (COM)، والمفتوح عادةً (NO)، والمغلق عادةً (NC).

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

تفاصيل ورقة البيانات للمرحل

الشركة المصنعةسونجل
رقم الجزءSRD-05VDC-SL-C
جهد الملف5 فولت تيار مستمر
جهد التبديلتيار متردد 250 فولت / تيار مستمر 30 فولت
تيار التبديل10 A كحد أقصى.
مقاومة التلامس≤ 100 mΩ
مقاومة العزلأكبر من أو يساوي 1000 MΩ
درجة حرارة التشغيل-40 إلى +70 °C
حزمةوحدة مرحّل قياسية

  • تأكد من أن المرحّل مصنّف لتحمّل الحمل الذي تقوم بتبديله.
  • حافظ على تزويد وحدة المرحل بالطاقة بجهد 5 VDC.
  • استخدم عزلًا مناسبًا لتوصيلات التيار المتردد.
  • كن حذراً عند العمل مع التيار المتردد؛ تأكد من فصل الدائرة قبل إجراء أي تغييرات.
  • قم بتوصيل زر الضغط بدبوس الإدخال المخصص على الأردوينو.
  • استخدم وضع INPUT_PULLUP لدبوس زر الضغط لتجنب الحاجة إلى مقاومات خارجية
  • اختبر عمل المرحل بجهد أقل قبل توصيل الأحمال التي تعمل بالتيار المتردد.
  • تحقق من الوصلات لتجنب القصر الكهربائي.

تعليمات التوصيل الكهربائي

Arduino wiring for AC bulb, LED and push button
Arduino wiring for AC bulb, LED and push button

لتوصيل وحدة المرحل، ابدأ بتوصيل دبوس VCC في المرحل بدبوس 5V على الأردوينو، وتوصيل دبوس GND في المرحل بدبوس GND على الأردوينو. يجب توصيل دبوس IN في المرحل بالدبوس الرقمي 10 على الأردوينو. سيرسل هذا الدبوس الإشارة لتفعيل المرحل.

لزر الضغط، اربط طرفًا واحدًا بالدبوس الرقمي 2 على الأردوينو. أما الطرف الآخر فوصّله بالأرضي (GND). هذا الإعداد يستخدم مقاومة السحب الداخلية (pull-up) في الأردوينو، لذا تأكد من ضبط الدبوس على INPUT_PULLUP في الكود. عند الضغط على الزر، سيؤدي ذلك إلى جعل الدبوس في الحالة LOW، مرسلاً إشارة إلى الأردوينو.

بالنسبة لحمل التيار المتردد، وصل سلكًا واحدًا بطرف COM في المرحل والسلك الآخر بطرف NO. ستسمح هذه التوصيلة بتشغيل حمل التيار المتردد عند تفعيل المرحل. تأكد دائمًا من أن وصلات التيار المتردد محكمة ومعزولة.

أمثلة على الكود وشرح تفصيلي

يقوم الكود التالي بتهيئة الأطراف اللازمة ويضبط المرحل ليبقى مغلقًا في البداية. ضغط الزر يبدل حالة المرحل ويحدّث حالة الإضاءة وفقًا لذلك.

int pbuttonPin = 2; // connect output to push button
int relayPin = 10; // Connected to relay (LED)

void setup() {
  Serial.begin(9600);
  pinMode(pbuttonPin, INPUT_PULLUP); 
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, HIGH); // keep the load OFF at the beginning
}

في الشيفرة، المتغيرpbuttonPinتم تعيينه على الدبوس 2، الذي يُستخدم لزر الضغط. الـrelayPinمُعيّن إلى الدبوس 10، متحكّمًا في المرحّل. الـdigitalWriteتُستخدم الدالة لضمان أن يبدأ المرحّل في وضع الإيقاف.

void loop() {
  val = digitalRead(pbuttonPin); // read the push button value
  if(val == HIGH && lightON == LOW) {
    pushed = 1 - pushed; // toggle the push status
    delay(100);
  }
  if(pushed == HIGH) {
    digitalWrite(relayPin, LOW); // turn the relay ON
  } else {
    digitalWrite(relayPin, HIGH); // turn the relay OFF
  }
}

يتحقق هذا الجزء من الكود باستمرار من حالة زر الضغط. عند الضغط على الزر، يقوم بتبديل حالة الـpushedالمتغير. اعتمادًا على قيمتهpushed، يتم تشغيل المرحل أو إيقافه، مما يتحكم في الضوء بفعالية. تعمل هذه الحلقة باستمرار، مما يضمن تحديث حالة الضوء في الوقت الحقيقي.

للحصول على تفاصيل الكود الكاملة، يرجى الاطلاع على الكود المدرج أدناه أسفل المقالة.

عرض توضيحي / ما يمكن توقعه

عند ضغط زر الضغط سيعمل المرحل فيضيء المصباح المتصل بالتيار المتناوب. وبالضغط على الزر مرة أخرى سيُطفأ المصباح. ستعرض شاشة المراقبة التسلسلية رسائل الحالة، مشيرة إلى ما إذا كانت الإضاءة ON أم OFF. إذا واجهت مشاكل فتأكد من أن الأسلاك موصولة بشكل صحيح، وتحقق من أي مداخل عائمة قد تتسبب في سلوك غير متوقع (في الفيديو عند 10:00).

الطوابع الزمنية للفيديو

  • 00:00- مقدمة
  • 01:30- نظرة عامة على الأجهزة
  • 03:15- تعليمات التوصيل الكهربائي
  • 05:45- استعراض الشيفرة
  • 08:00- عرض توضيحي

الصور

5V LOW-Level triggered Relay module
5V LOW-Level triggered Relay module
5V LOW-LEVEL trigger relay
5V LOW-LEVEL trigger relay
Arduino wiring for AC bulb, LED and push button
Arduino wiring for AC bulb, LED and push button
5V LOW-LEVEL trigger relay
5V LOW-LEVEL trigger relay
34-Using an Arduino push button to push-on and push-off a relay and AC bulb (toggle)
اللغة: C++
/*
 * This is the Arduino code for a push button to turn ON and OFF a relay and AC bulb.
It toggles the bulb ON and OFF.
 * The output pin 10 is connected to the relay.
 * Watch video instructions on YouTube: https://youtu.be/7CCSRs5bvH0
 * Be careful working with AC; it is dangerous. Disconnect from AC power when working and wear protective gloves when touching AC components.
 
 * Full explanation of this code and wiring diagram is available in
 * my Arduino Course at Udemy.com here: http://robojax.com/L/?id=62

 * Written by Ahmad Shamshiri on December 14, 2017 in Ajax, Ontario, Canada
 * in Ajax, Ontario, Canada. www.robojax.com
 * 

 * Get this code and other Arduino codes from Robojax.com.
Learn Arduino step by step in a structured course with all materials, wiring diagrams, and libraries
all in one place. Purchase my course on Udemy.com: http://robojax.com/L/?id=62

If you found this tutorial helpful, please support me so I can continue creating 
content like this. You can support me on Patreon: http://robojax.com/L/?id=63

or make a donation using PayPal: http://robojax.com/L/?id=64

 *  * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.* 
 * This code has been downloaded from Robojax.com
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.


*/


int pbuttonPin = 2;// connect output to push button
int relayPin = 10;// Connected to relay (LED)

int val = 0; // push value from pin 2
int lightON = 0;//light status
int pushed = 0;//push status


void setup() {
	// Robojax.com code and video tutorial for push button ON and OFF
  Serial.begin(9600);
  pinMode(pbuttonPin, INPUT_PULLUP); 
  pinMode(relayPin, OUTPUT);
 digitalWrite(relayPin, HIGH);// keep the load OFF at the begining. If you wanted to be ON, change the HIGH to LOW
}

void loop() {
// Robojax.com code and video tutorial for push button ON and OFF
  val = digitalRead(pbuttonPin);// read the push button value

  if(val == HIGH && lightON == LOW){

    pushed = 1-pushed;
    delay(100);
  }    

  lightON = val;

      if(pushed == HIGH){
        Serial.println("Light ON");
        digitalWrite(relayPin, LOW); 
       
      }else{
        Serial.println("Light OFF");
        digitalWrite(relayPin, HIGH);
   
      }     

// Robojax.com code and video tutorial for push button ON and OFF

  delay(100);
}

الموارد والمراجع

ملفات📁

لا توجد ملفات متاحة.