كود البحث

تتابع الحالة الصلبة بأربعة قنوات مع أرودينو

تتابع الحالة الصلبة بأربعة قنوات مع أرودينو

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

مكونات الأجهزة

  • أردوينو أونو (أو لوحة متوافقة)
  • وحدة التتابع الصلب 4 قنوات (استنادًا إلى OMRON G3MB-202P)
  • 4 مصابيح تيار متردد أو أحمال تيار متردد أخرى (ضمن تصنيف الوحدة)
  • أسلاك الم jumper (يوصى باستخدام موصلات Dupont)
  • كابل الطاقة الكهربائية والقابس (للحمولة)
  • لوحة تجريبية (اختيارية، للتجريب)

دليل الأسلاك

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

التوصيلات لهذا المشروع بسيطة. يحتوي الوحدة على جانبين: جانب التحكم المنخفض الجهد وجانب الحمل العالي الجهد. في جانب التحكم، ستجد دبابيس DC+ و DC- للطاقة، وأربع دبابيس إدخال موسومة CH1 و CH2 و CH3 و CH4. هذه متصلة بأردوينو كما يلي:

  • دي سي +إلى أردوينو5فولت
  • DC-إلى أردوينوغند
  • CH1إلى دبوس رقمي من أرودينو٢
  • CH2إلى دبوس رقمي في الأردوينو٣
  • CH3إلى دبابيس رقمية Arduino٤
  • CH4إلى دبوس رقمي في أردوينو٥
4ch_مرحلات الحالة الصلبة - 3 دبابيس إدخال

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

How to use a 4-channel solid-state relay with Arduino to control a 4A bulb or load
كيفية استخدام وحدة تبديل الحالة الصلبة رباعية القنوات مع الأردوينو للتحكم في مصباح أو حمل بقدرة 4 أمبير — How to use a 4-channel solid-state relay with Arduino to control a 4A bulb or load

شرح الشيفرة

تم تصميم كود 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)

4ch_ريليه_حالة_صلبة-7-أعلى

الفصول

  • [00:00] مقدمة في مشروع SSR رباعي القنوات
  • تحذيرات السلامة عند العمل مع التيار المتردد
  • فهم مواصفات وحدة SSR
  • [02:18] تخطيط الدوائر وموصلات الوحدة
  • [04:12] تجهيز وتوصيل الأحمال الكهربائية المتناوبة
  • [05:34] توصيل الوحدة إلى الأردوينو
  • [06:12] تكوين الشيفرة وشرحها
  • [08:58] استخدام دالة contrlSSR()
  • [12:31] عرض مباشر واختبار
  • [14:01] الخاتمة والموارد الإضافية

الصور

كيفية استخدام وحدة تبديل الحالة الصلبة رباعية القنوات مع الأردوينو للتحكم في مصباح أو حمل بقدرة 4 أمبير
كيفية استخدام وحدة تبديل الحالة الصلبة رباعية القنوات مع الأردوينو للتحكم في مصباح أو حمل بقدرة 4 أمبير
4ch solid state relay 7 top
4ch solid state relay 7 top
4ch solid state relay 6 left top
4ch solid state relay 6 left top
4ch solid state relay 5 top
4ch solid state relay 5 top
4ch solid state relay 4 top side
4ch solid state relay 4 top side
4ch solid state relay 3 input pins
4ch solid state relay 3 input pins
4ch solid state relay 2 side connector
4ch solid state relay 2 side connector
4ch solid state relay 1 side view
4ch solid state relay 1 side view
184-Arduino code to control a four-channel solid-state relay
اللغة: C++
++
/*
 * 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);     
  }
}

الأشياء التي قد تحتاجها

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

لا توجد موارد حتى الآن.

ملفات📁

Fritzing File

ملفات أخرى