كود البحث

كيفية استخدام YYNMOS-4 MOSFET رباعي القنوات للتحكم في محركات التيار المستمر من 5 أمبير إلى 20 أمبير أو شرائط الإضاءة LED

كيفية استخدام YYNMOS-4 MOSFET رباعي القنوات للتحكم في محركات التيار المستمر من 5 أمبير إلى 20 أمبير أو شرائط الإضاءة LED

في هذا الدليل، سنستكشف كيفية التحكم في أحمال التيار المستمر المختلفة، مثل المحركات وأشرطة الإضاءة LED، باستخدام وحدة MOSFET YYNMOS-4 ذات الأربع قنوات. تتيح لك هذه الوحدة إدارة شدة الأضواء أو سرعة المحركات بفعالية. مع قدرتها على التعامل مع أحمال تتراوح بين 5A إلى 20A، يمكن أن تكون مكونًا أساسيًا في مشاريعك الإلكترونية.

YNMOS-4: with Arduino 1

سنقوم بتوصيل وحدة MOSFET بأردوينو، مما يتيح لنا التحكم في الأحمال عبر تعديل عرض النبضة (PWM). هذه الطريقة تمكّن من التحكم السلس في تشغيل المحركات والأضواء. للحصول على دليل بصري، أوصي بمشاهدة الفيديو المتعلق (في الفيديو عند :00).

شرح الأجهزة

يتضمن وحدة YYNMOS-4 أربعة ترانزستورات MOSFET يمكنها التعامل مع تيارات كبيرة، مما يجعلها مثالية لتشغيل أنواع متعددة من الأحمال. يعمل كل ترانزستور MOSFET بمقاومة منخفضة (من 10 إلى 16 مللي أوم عند التشغيل)، مما يسمح بتوصيل الطاقة بشكل فعال. يمكنك توصيل ما يصل إلى أربعة أجهزة بحد أقصى للتيار يبلغ 5 أمبير لكل منها، ومع التبريد المناسب، يمكن زيادة ذلك إلى 20 أمبير.

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

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

الصانع YYNMOS
رقم القطعة YYNMOS-4
جهد المنطق/الإدخال والإخراج ٣-٢٠ فولت
جهد الإمداد ٥-٣٦ ف
التيار الخارجى (لكل قناة) ٥ أ
التيار الذروي (لكل قناة) 20 أ
إرشادات تردد PWM ~1 كيلوهرتز
عتبات منطق الإدخال عالي: > 3 فولت، منخفض: < 1 فولت
انخفاض الجهد / RDS(on)/ تشبع 10-16 مΩ
الحدود الحرارية حتى 85 درجة مئوية
حزمة وحدة PCB القياسية
ملاحظات / متغيرات متوافق مع وحدات التحكم المنطقية القابلة للبرمجة

  • تأكد من وجود تبريد مناسب للتيارات التي تزيد عن 5 أمبير.
  • تحقق من تصنيفات الجهد قبل توصيل الأحمال.
  • استخدم إشارات PWM للتحكم في السرعة أو الكثافة.
  • كن على دراية بالحدود الحرارية لتجنب السخونة الزائدة.
  • تحقق مرة أخرى من الأسلاك لمنع حدوث دوائر قصيرة.

تعليمات التوصيل

YNMOS-4: Arduino Wiring with an LED Strip
YNMOS-4: توصيل أردوينو مع شريط LED — YNMOS-4: Arduino Wiring with an LED Strip
robojax_YYNMOS-4-img6
robojax_YYNMOS-4-img6

لربط وحدة YYNMOS-4، ابدأ بتوصيل مصدر الطاقة. وصل الطرف الموجب من مصدر الطاقة لديك إلىDC+الطرف السالب في الوحدة والطرف السالب إلى الـDC-المحطة. ستتصل كل حمولة ترغب في التحكم بها بأحد أزواج المخرجات. على سبيل المثال، قم بتوصيل القطب الموجب للحمل الخاص بك بالم terminal output المعني والقطب السالب بالأرض.

robojax_YYNMOS-4-img6
robojax_YYNMOS-4-img6

لإشارات التحكم، قم بتوصيل دبابيس PWM من الأردوينو الخاص بك إلى دبابيس الإدخال المقابلة في وحدة YYNMOS-4. على سبيل المثال، إذا كنت تستخدم الدبابيس 3 و5 و6 و9 على الأردوينو، فاوصلهما إلى مدخلات PWM في الوحدة. تأكد من أن الأرضي من الأردوينو متصل أيضًا بالأرضي لوحدة YYNMOS-4 للحفاظ على نقطة مرجعية مشتركة.

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

الشفرة التالية توضح كيفية تعريف الدبابيس الضرورية والتحكم في المحركات أو مصابيح LED باستخدام إشارات PWM. المتغيرmotorهي مصفوفة تحتفظ بأرقام الدبابيس للرجوع إليها بسهولة.


int pin1 = 3; // PWM pin for motor 1
int pin2 = 5; // PWM pin for motor 2
int pin3 = 6; // PWM pin for motor 3
int pin4 = 9; // PWM pin for motor 4
int motor[]={NULL,pin1, pin2, pin3, pin4};

في هذا المقتطف، نحدد أربعة دبابيس PWM للتحكم في كل محرك أو LED. المصفوفةmotorيسمح لنا بالرجوع بسهولة إلى هذه الدبابيس لاحقًا في الشيفرة.

الخدماتloop()توضح الدالة كيفية تفعيل المحركات بسرعات مختلفة:


void loop() {
   motorON(1, 75); // Run motor 1 at 75% speed
   delay(4000); // Wait for 4 seconds
   stop(1); // Stop motor 1
   delay(3000); // Wait for 3 seconds
}

يقوم هذا الجزء من الكود بتفعيل المحرك 1 بسرعة 75% لمدة 4 ثوانٍ، ثم يتوقف لمدة 3 ثوانٍ. يسمح ضبط السرعة والتوقيت بتحكم مرن في الأحمال.

للحصول على الكود الكامل، يرجى الرجوع إلى البرنامج الكامل المحمل أسفل المقال.

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

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

توقيتات الفيديو

  • 00:00 ابدأ
  • 00:58 شرح الأجهزة
  • 07:53 شرح الأسلاك
  • 10:13 شرح كود الأردوينو لـ YYNMOS-4
  • 14:51 عرض بدون أردوينو
  • 16:32 عرض توضيحي باستخدام أردوينو

الصور

YNMOS-4: جاهز
YNMOS-4: جاهز
YNMOS-4: مع أردوينو 1
YNMOS-4: مع أردوينو 1
YNMOS-4: مع أردوينو 2
YNMOS-4: مع أردوينو 2
YNMOS-4: توصيل أردوينو عن قرب
YNMOS-4: توصيل أردوينو عن قرب
YNMOS-4: توصيل أردوينو مع شريط LED
YNMOS-4: توصيل أردوينو مع شريط LED
robojax_YYNMOS-4-img6
robojax_YYNMOS-4-img6
YNMOS-4 4-Channel MOSFET Red
YNMOS-4 4-Channel MOSFET Red
343-Arduino code YYNMOS-4 4-Channel MOSFET to Control 5A DC or LED light control
اللغة: C++
++
/*
 * This is Arduino code to control 4 DC motors' speed or 4 LED light strips or other DC loads
 * by utilizing a YYNMOS-4 4-channel MOSFET module.

We can control 4 DC motors with voltage from 5V to 35V and 5A each.
Get the code and wiring from https://robojax.com/RJT338

 * Written by Ahmad Shamshiri on July 13, 2020
 * in Ajax, Ontario, Canada. www.robojax.com
 * 
 * 
 * Watch video instructions for this code: https://youtu.be/G9uHVcITHf8
 * 

If you found this tutorial helpful, please support me so I can continue creating 
content like this. 

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

 * 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 pin1 = 3;//pwm
int pin2 = 5;//pwm
int pin3 = 6;//pwm
int pin4 = 9;//pwm
int ON = HIGH;
int OFF = LOW;
int motor[]={NULL,pin1, pin2, pin3, pin4};


void setup() {
  Serial.begin(9600);
  Serial.println("Robojax.com 4 DC Motor or LED");
  pinMode(motor[1], OUTPUT);
  pinMode(motor[2], OUTPUT);
  pinMode(motor[3], OUTPUT);
  pinMode(motor[4], OUTPUT);    

}

void loop() {
   motorON(1, 75);//run motor 1 at 75% speed
   delay(4000);//for 4 seconds

   motorON(4, 100);//run motor 4 at 100% speed (or 100% light intensity)
   delay(4000); //for 4 seconds

   stop(1);//stop motor 1
   delay(3000);//keep it stopped for 3 seconds

   stop(4);//stop motor 4 
   delay(3000);  //keep it stopped for 3 seconds 
   for(int i=0; i<=100; i++)
   {
     motorON(1,i); //change speed of motor 1  
     delay(100);
   }
  delay(3000);//keep running for 3 seconds
  stop(1);//stop motor 1
  delay(3000);//keep it stopped for 3 seconds
  
     for(int i=100; i>=0; i--)
   {
     motorON(1,i);  //change speed of motor 1    
     delay(100);
   }
   delay(3000); //keep it running for 3 seconds

    
   for(int i=0; i<=100; i++)
   {
     motorON(4,i);    
     delay(100);
   }
  delay(3000);//keep it at for 3 seconds
  
    for(int i=100; i>=0; i--)
   {
     motorON(4,i);    
     delay(100);
   }   
  
}// loop


/*
   motorON(int n, int sp)
 * @brief Runs the specific motor n with speed sp
 * @param n, is an integer from 1 to 4
 * @param sp, is speed in % from 0 to 100
 * @return does not return anything
 * Written by Ahmad Shamshiri
 * www.Robojax.com code July 13, 2020 in Ajax, Ontario, Canada
 */
void motorON(int n, int sp)
{
  if(n >=1 && n <=4)
  {
  int speed=map(sp, 0, 100, 0, 255);
  analogWrite(motor[n],speed);
  Serial.print("Load ");
  Serial.print(n);
  Serial.print(" @");
  Serial.print(sp);
  Serial.println("%");
  
  }else{
    Serial.println("Motor/load number should be between 1 and 4");
    while(1);// stop forever
  }
    
}//motorON(int n)


/*
   stop(int n)
 * @brief Stops the specific motor
 * @param n, is an integer from 1 to 4
 * @return does not return anything
 * Written by Ahmad Shamshiri
 * www.Robojax.com code July 13, 2020 in Ajax, Ontario, Canada
 */
void stop(int n)
{
  if(n >=1 && n <=4)
  {

  digitalWrite(motor[n], LOW);
  Serial.print("Load ");
  Serial.print(n);
  Serial.println(" Stopped");

  }else{
    Serial.println("Motor/load number should be between 1 and 4");
    while(1);// stop forever
  }
    
}//stop(int n)

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

ملفات📁

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