شِفر (کود) جستجو

چگونه از YYNMOS-4 MOSFET چهار کاناله برای کنترل موتورهای DC 5A تا 20A یا نوارهای LED استفاده کنیم

چگونه از YYNMOS-4 MOSFET چهار کاناله برای کنترل موتورهای DC 5A تا 20A یا نوارهای LED استفاده کنیم

در این آموزش، ما بررسی خواهیم کرد که چگونه می‌توان بارهای مختلف DC، مانند موتورها و نوارهای نوری LED را با استفاده از ماجیول MOSFET چهار کاناله YYNMOS-4 کنترل کرد. این ماجیول به شما امکان می‌دهد شدت نور یا سرعت موتورها را به طور مؤثر مدیریت کنید. با قابلیت مدیریت بارهایی بین 5A تا 20A، می‌تواند یک جزء اساسی در پروژه‌های الکترونیکی شما باشد.

YNMOS-4: with Arduino 1

ما ماجیول MOSFET را به یک آردوینو متصل خواهیم کرد که به ما اجازه می‌دهد بارها را از طریق PWM (مدولاسیون عرض پالس) کنترل کنیم. این رویکرد کنترل نرم بر عملکرد موتورها و چراغ‌ها را امکان‌پذیر می‌سازد. برای راهنمایی بصری، تماشای ویدئوی مرتبط (در ویدئو در :00) را توصیه می‌کنم.

توضیح سخت‌افزار

ماجیول YYNMOS-4 شامل چهار MOSFET است که می‌توانند جریان‌های قابل توجهی را مدیریت کنند و آن را برای راه‌اندازی بارهای مختلف ایده‌آل می‌سازد. هر MOSFET با مقاومت پایین (10 تا 16 میلی‌اهم در حالت روشن) فعالیت می‌کند که امکان تحویل کارآمد توان را فراهم می‌آورد. شما می‌توانید حداکثر چهار دستگاه را با جریان حداکثر 5A به هر یک متصل کنید و با خنک‌کنندگی مناسب، این مقدار به 20A قابل افزایش است.

علاوه بر MOSFET ها، این ماجیول دارای پایه‌های ورودی برای سیگنال‌های کنترل و پایه‌های خروجی برای اتصال بارهای شما است. ورودی می‌تواند سیگنال‌هایی از ۳ ولت تا ۲۰ ولت را بپذیرد و بنابراین با بیشتر میکروکنترلرها از جمله آردوینو سازگار است. این ماجیول همچنین شامل LEDهایی است که وضعیت هر خروجی را نشان می‌دهد و بازخورد بصری در حین عملکرد فراهم می‌کند.

جزئیات برگه داده

تولیدکننده YYNMOS
شماره قطعه YYNMOS-4
ولتاژ منطق/ورودی و خروجی ۳-۲۰ ولت
ولتاژ تأمین 5-36 ولت
جریان خروجی (به ازای هر کانال) ۵ A
جریان پیك (برای هر کانال) ۲۰ A
راهنمایی فرکانس PWM ~1 کیلوهرتز
راهبردهای آستانه منطقی ورودی بالا: > ۳ ولت، پایین: < ۱ ولت
افت ولتاژ / RDS(on)/ اشباع ۱۰-۱۶ میلی‌اهم
محدودیت‌های حرارتی تا 85 درجه سانتی‌گراد
بسته ماجیول PCB استاندارد
یادداشت‌ها / انواع سازگار با PLCها

  • اطمینان حاصل کنید که برای جریان‌های بالای ۵ آمپر، هیت‌سینک مناسب وجود دارد.
  • قبل از اتصال بارها، ولتاژهای مورد نظر را بررسی کنید.
  • از سیگنال‌های 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-پایه. هر باری که می‌خواهید کنترل کنید به یکی از جفت‌های خروجی متصل می‌شود. به عنوان مثال، مثبت بار خود را به پایه خروجی مربوطه و منفی را به زمین متصل کنید.

robojax_YYNMOS-4-img6
robojax_YYNMOS-4-img6

برای سیگنال‌های کنترلی، پایه‌های دارای PWM از آردوینو خود را به پایه‌های ورودی متناظر در ماجیول YYNMOS-4 متصل کنید. به عنوان مثال، اگر از پایه‌های ۳، ۵، ۶ و ۹ روی آردوینو استفاده می‌کنید، آن‌ها را به ورودی‌های 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 پاسخ می‌دهند. موتورها با سرعت‌های تعریف‌شده شروع به کار خواهند کرد و می‌توان آن‌ها را به‌طور دینامیک متوقف یا تنظیم کرد. اگر مشکلی مشاهده کردید، قطبیت معکوس یا سیم‌کشی نادرست را بررسی کنید، زیرا این‌ها اشتباهات رایجی هستند (در ویدیو در ۱۲:۳۰).

زمان‌بندی ویدیو

  • ۰۰:۰۰ شروع
  • ۰۰:۵۸ توضیح سخت‌افزار
  • 07:53 توضیحات سیم‌کشی
  • شِفر (کود) آردوینو برای YYNMOS-4 توضیح داده شده است :13
  • ۱۴:۵۱ نمایش بدون آردوینو
  • ۱۶:۳۲ نمایش با آردوینو

تصاویر

YNMOS-4: آماده
YNMOS-4: آماده
YNMOS-4: با آردوینو ۱
YNMOS-4: با آردوینو ۱
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)

مواردی که ممکن است به آن‌ها نیاز داشته باشید

فایل‌ها📁

هیچ فایلی موجود نیست.