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

مكونات الأجهزة
- أردوينو أونو (أو لوحة متوافقة)
- وحدة التتابع الصلب 4 قنوات (استنادًا إلى OMRON G3MB-202P)
- 4 مصابيح تيار متردد أو أحمال تيار متردد أخرى (ضمن تصنيف الوحدة)
- أسلاك الم jumper (يوصى باستخدام موصلات Dupont)
- كابل الطاقة الكهربائية والقابس (للحمولة)
- لوحة تجريبية (اختيارية، للتجريب)
دليل الأسلاك
قبل أن تبدأ، من الضروري أن تتذكر أنك تعمل مع جهد التيار المتردد الرئيسي الخطير. دائما قم بفصل الطاقة قبل إجراء أي اتصالات. لا تلمس الوحدة أو توصيلاتها أثناء تشغيلها. ضع الوحدة على سطح غير موصل، مثل البلاستيك أو الخشب، لمنع حدوث دوائر قصيرة. (في الفيديو عند :32)
التوصيلات لهذا المشروع بسيطة. يحتوي الوحدة على جانبين: جانب التحكم المنخفض الجهد وجانب الحمل العالي الجهد. في جانب التحكم، ستجد دبابيس DC+ و DC- للطاقة، وأربع دبابيس إدخال موسومة CH1 و CH2 و CH3 و CH4. هذه متصلة بأردوينو كما يلي:
- دي سي +إلى أردوينو5فولت
- DC-إلى أردوينوغند
- CH1إلى دبوس رقمي من أرودينو٢
- CH2إلى دبوس رقمي في الأردوينو٣
- CH3إلى دبابيس رقمية Arduino٤
- CH4إلى دبوس رقمي في أردوينو٥
على جانب الحمل، يحتوي كل قناة في وحدة الترحيل على نقطتي براغي. لتوصيل حمل، يجب عليك قطع أحد الأسلاك من مصدر الطاقة المتناوبة الخاص بك وتوصيل الطرفين بهذين النقطتين. يعمل الترحيل كمفتاح، متصلاً أو فاصلًا الدائرة. (في الفيديو عند :12) لكل من الأحمال الأربعة، ستقوم بتوصيل سلكيها بنقطتي القناة المقابلة. توضح الرسم البياني أدناه هذا الإعداد، مع دبابيس Arduino على اليسار والأحمال المتناوبة المتصلة على اليمين.

شرح الشيفرة
تم تصميم كود Arduino المقدم لهذا المشروع ليكون سهل التكوين. الأجزاء الرئيسية القابلة للتكوين من قبل المستخدم موجودة في أعلى الرسم التخطيطي. (في الفيديو عند 06:12)
أولاً، تقوم بتعريف الدبابيس المتصلة بوحدة الترحيل:
int ssr[]={2,3,4,5}; // Arduino pin numbers used for SSRبعد ذلك، يجب عليك تعيين نوع الزناد ليتناسب مع وحدتك المحددة. يدعم الكود وحدات الزناد العالية والمنخفضة. إذا كنت غير متأكد من نوع الوحدة لديك، تحقق من الملصق على الوحدة أو قائمة المنتج الخاصة بها. (في الفيديو عند 06:48)
int triggerType = HIGH;// type LOW if low trigger and HIGH if high trigger SSR is usedأخيرًا، يمكنك ضبط الوقت الافتراضي للتأخير المستخدم في حلقة العرض:
int wait = 2000;// delay timeيتضمن الكود دالة مخصصة،contrlSSR()، والذي يبسط التحكم في كل رافعة. لاستخدامه، يجب عليك توفير ثلاثة معلمات: رقم الرافعة (1-4)، الإجراء (ssrONأوssrOFF)، ومدة بقاء تلك الحالة بالملي ثانية. على سبيل المثال،contrlSSR(1, ssrON, 5000);سيشغّل المرحل 1 لمدة 5 ثوانٍ. تتولى هذه الوظيفة منطق تحويل أوامرك عالية المستوى إلى الإشارات الرقمية الصحيحة لنوع الزناد الخاص بك. (في الفيديو عند 08:58)
عرض المشروع المباشر
في العرض، يتم تشغيل الكود أولاً لعرض تسلسل بسيط للتشغيل/الإيقاف لقناة واحدة. يمكنك رؤية مصباح LED على الوحدة يضيء عندما يضيء المصباح الكهربائي المقابل. (في الفيديو عند :12:31) يتم تعديل الكود بعد ذلك لعرض التحكم في قنوات متعددة في تسلسل، عن طريق تشغيلها وإيقافها واحدة تلو الأخرى. هذا يُظهر مرونة الإعداد لإنشاء أنماط أتمتة متنوعة. (في الفيديو عند :12:51) أخيرًا، يتم استخدام حلقة للدورات من خلال جميع القنوات الأربع، بتشغيل كل واحدة ثم إيقافها بالتسلسل. (في الفيديو عند :13:12)
الفصول
- [00:00] مقدمة في مشروع SSR رباعي القنوات
- تحذيرات السلامة عند العمل مع التيار المتردد
- فهم مواصفات وحدة SSR
- [02:18] تخطيط الدوائر وموصلات الوحدة
- [04:12] تجهيز وتوصيل الأحمال الكهربائية المتناوبة
- [05:34] توصيل الوحدة إلى الأردوينو
- [06:12] تكوين الشيفرة وشرحها
- [08:58] استخدام دالة contrlSSR()
- [12:31] عرض مباشر واختبار
- [14:01] الخاتمة والموارد الإضافية
++
/*
* This is code to control 4-channel Solid State Relay (SSR) modules using Arduino.
* Written by Ahmad Shamshiri for Robojax.com
* on January 11, 2019 at 21:03 in Ajax, Ontario, Canada.
Watch instruction video for this code: https://youtu.be/Rfaz5qOLKYQ
* 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 ssr[]={2,3,4,5}; // Arduino pin numbers used for SSR
int triggerType = HIGH;// type LOW if low trigger and HIGH if high trigger SSR is used
int wait = 2000;// delay time
int ssrON, ssrOFF;// used for two different SSR trigger type. Do not change
void setup() {
Serial.begin(9600);// prepare Serial monitor
// set pins as output
if(triggerType)
{
ssrON = HIGH;
ssrOFF = LOW;
}else{
ssrON = LOW;
ssrOFF = HIGH;
}
for(int i=0; i < 4; i++)
{
pinMode(ssr[i], OUTPUT);// sent i(th) pin as output
digitalWrite(ssr[i], ssrOFF); // Turn the SSR OFF
}
Serial.println("Robojax 4 SSR ");
}
void loop() {
// this is just a demo
for(int i=0; i < 4; i++)
{
contrlSSR(i+1, ssrON, 2000); // turn SSRs one by one ON
}// for loop
for(int i=0; i < 4; i++)
{
contrlSSR(i+1, ssrOFF, 1000); // turn SSRs one by one OFF
}// for loop
contrlSSR(1, ssrON, 2000); // turn SSR1 ON for 2 seconds
contrlSSR(2, ssrON, 3000);// turn SSR2 ON for 3 seconds
contrlSSR(4, ssrON, 2000);// turn SSR4 ON for 2 seconds
contrlSSR(1, ssrOFF, 0); // turn ssr1 OFF
contrlSSR(4, ssrOFF, 0);// turn ssr4 OFF
contrlSSR(2, ssrOFF, 0);// turn ssr2 OFF
delay(2000);
Serial.println("====== loop done ==");
}// loop
/*
* contrlSSR turns OFF or ON SSR
* January 11, 2019
* @param is an integer, SSR number starts with 1
* @param control should be ssrON or ssrOFF
* @param wait is a number in milliseconds.
*
*/
void contrlSSR(int number, int control, int wait)
{
if(control == HIGH)
{
Serial.print("SSR "); Serial.print(number);Serial.println(" ON");
digitalWrite(ssr[number-1], ssrON); // Turn the SSR ON
delay(wait);
}else{
Serial.print("SSR "); Serial.print(number);Serial.println(" OFF");
digitalWrite(ssr[number-1], ssrOFF); // Turn the SSR OFF
delay(wait);
}
}
الأشياء التي قد تحتاجها
-
أمازونSolid State relay on Amazonamzn.to
-
إي باي
-
علي إكسبريسSolid State relay 1ch 2ch 4ch and 8ch on AliExpresss.click.aliexpress.com
-
علي إكسبريسSolid State relay 1ch 2ch 4ch and 8ch on AliExpress-2s.click.aliexpress.com
الموارد والمراجع
لا توجد موارد حتى الآن.
ملفات📁
Fritzing File
-
وحدة ريل عالي المستوى بحالة صلبة
Solid State High Level Relay Module .fzpz0.04 MB
ملفات أخرى
-
بيانات تقنية لمرحّل الحالة الصلبة GM3B
robojax-solid-state-relay_G3MB.pdf0.31 MB