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

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

شرح الأجهزة
بالنسبة لهذا المشروع، سنستخدم وحدة ريليه، ولوحة أردوينو، وزر ضغط. تعمل وحدة الريليه كمفتاح يمكنه التحكم في أحمال التيار المتردد ذات الجهد العالي، مثل المصباح، بينما يتم التحكم بها بواسطة إشارات أردوينو ذات الجهد المنخفض. تحتوي وحدة الريليه على ثلاث أطراف رئيسية لتوصيل الحمل: المشترك (COM)، والمفتوح عادةً (NO)، والمغلق عادةً (NC).
يعمل زر الضغط كواجهة مستخدم لتبديل حالة المرحل. إنه متصل بأحد الدبابيس الرقمية على لوحة الأردوينو. عند الضغط على الزر، يرسل إشارة إلى الأردوينو الذي يقوم بعد ذلك بتنشيط المرحل أو تعطيله وفقًا لذلك. تتيح لنا هذه التفاعلية البسيطة التحكم في الضوء بسهولة.
تفاصيل ورقة البيانات للمرحل
| الشركة المصنعة | سونجل |
|---|---|
| رقم الجزء | SRD-05VDC-SL-C |
| جهد الملف | 5 فولت تيار مستمر |
| جهد التبديل | تيار متردد 250 فولت / تيار مستمر 30 فولت |
| تيار التبديل | 10 A كحد أقصى. |
| مقاومة التلامس | ≤ 100 mΩ |
| مقاومة العزل | أكبر من أو يساوي 1000 MΩ |
| درجة حرارة التشغيل | -40 إلى +70 °C |
| حزمة | وحدة مرحّل قياسية |
- تأكد من أن المرحّل مصنّف لتحمّل الحمل الذي تقوم بتبديله.
- حافظ على تزويد وحدة المرحل بالطاقة بجهد 5 VDC.
- استخدم عزلًا مناسبًا لتوصيلات التيار المتردد.
- كن حذراً عند العمل مع التيار المتردد؛ تأكد من فصل الدائرة قبل إجراء أي تغييرات.
- قم بتوصيل زر الضغط بدبوس الإدخال المخصص على الأردوينو.
- استخدم وضع INPUT_PULLUP لدبوس زر الضغط لتجنب الحاجة إلى مقاومات خارجية
- اختبر عمل المرحل بجهد أقل قبل توصيل الأحمال التي تعمل بالتيار المتردد.
- تحقق من الوصلات لتجنب القصر الكهربائي.
تعليمات التوصيل الكهربائي

لتوصيل وحدة المرحل، ابدأ بتوصيل دبوس 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
- التحكم في ريليه 5V باستخدام أردوينو للتحكم في حمل تيار متردد (AC) أو تيار مستمر (DC) مثل مصباح أو محرك
- مستشعر لمسي TTP224 بأربع قنوات لتشغيل أحمال AC/DC باستخدام مرحل
- استخدام وحدة مرحل 5V (تفعيل منخفض) مع أردوينو
- استخدام وحدة MAX6675 مع زوج حراري من النوع K ومرحّل وشاشة
- استخدام مفتاح ريد للتحكم في مرحل وأحمال التيار المتردد/المستمر باستخدام أردوينو
- باستخدام وحدة لمس TTP223B ومرحّل للتحكم في أحمال التيار المتردد والمستمر بواسطة لوحة Arduino
/*
* 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);
}
الموارد والمراجع
ملفات📁
لا توجد ملفات متاحة.