Код для поиска

Как использовать YYNMOS-4 4-канальный MOSFET для управления постоянными моторами мощностью от 5A до 20A или светодиодными лентами

Как использовать YYNMOS-4 4-канальный MOSFET для управления постоянными моторами мощностью от 5A до 20A или светодиодными лентами

В этом уроке мы исследуем, как управлять различными постоянными нагрузками, такими как моторы и светодиодные ленты, с помощью 4-канального MOSFET-модуля YYNMOS-4. Этот модуль позволяет эффективно управлять интенсивностью света или скоростью моторов. С его способностью выдерживать нагрузки от 5A до 20A он может стать важным компонентом в ваших электронных проектах.

YNMOS-4: with Arduino 1

Мы подключим модуль MOSFET к Arduino, что позволит нам управлять нагрузками через ШИМ (широтно-импульсная модуляция). Этот подход обеспечивает плавное управление работой моторов и освещения. Для визуального руководства я рекомендую посмотреть связанное видео (в видео на 00:00).

Аппаратное обеспечение объяснено

Модуль YYNMOS-4 включает четыре MOSFET, которые могут выдерживать значительные токи, что делает его идеальным для управления различными нагрузками. Каждый MOSFET работает с низким сопротивлением (от 10 до 16 миллиом при включении), что позволяет эффективно передавать энергию. Вы можете подключить до четырех устройств с максимальным током 5А каждое, и при правильном теплоотведении это может быть увеличено до 20А.

В дополнение к MOSFET-ам, модуль оснащен входными клеммами для управляющих сигналов и выходными клеммами для подключения ваших нагрузок. Вход может принимать сигналы от 3V до 20V, что делает его совместимым с большинством микроконтроллеров, включая Arduino. Модуль также включает светодиоды для индикации статуса каждого выхода, обеспечивая визуальную обратную связь во время работы.

Технические характеристики

Производитель YYNMOS
Номер детали YYNMOS-4
Логическое/входное напряжение 3-20 В
Сетевое напряжение 5-36 В
Выходной ток (на канал) 5 A
Пиковый ток (на канал) 20 А
Руководство по частоте ШИМ ~1 кГц
Входные логические пороги Высокий: > 3 В, Низкий: < 1 В
Перепад напряжения / RДС(включен)/ насыщение 10-16 мОм
Тепловые ограничения До 85°C
упаковка Стандартный модуль печатной платы
Заметки / варианты Совместимо с ПЛК.

  • Обеспечьте правильное теплоотведение для токов выше 5A.
  • Проверьте номиналы напряжения перед подключением нагрузок.
  • Используйте ШИМ-сигналы для управления скоростью или интенсивностью.
  • Будьте внимательны к тепловым границам, чтобы предотвратить перегрев.
  • Проверьте проводку, чтобы избежать коротких замыканий.

Инструкции по подключению

YNMOS-4: Arduino Wiring with an LED Strip
YNMOS-4: Arduino Wiring with LED Strip — 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

Для управляющих сигналов подключите пины с поддержкой ШИМ вашего Arduino к соответствующим входным пинам модуля YYNMOS-4. Например, если вы используете пины 3, 5, 6 и 9 на Arduino, подключите их к входам ШИМ на модуле. Убедитесь, что земля Arduino также подключена к земле модуля YYNMOS-4 для поддержания общей точки отсчета.

Примеры кода и руководство

Следующий фрагмент кода демонстрирует, как определить необходимые контакты и управлять моторами или светодиодами с помощью сигналов ШИМ. Переменная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};

В этом фрагменте мы определяем четыре выводы ШИМ для управления каждым мотором или светодиодом. Массивmotorпозволяет нам легко ссылаться на эти контакты позже в коде.

Тотloop()функция показывает, как активировать motores на разных скоростях:


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 секунды. Регулировка скорости и времени позволяет гибко управлять нагрузками.

Для полного кода, пожалуйста, обратитесь к программе, загруженной ниже статьи.

Демонстрация / Что ожидать

После завершения подключения проводки и загрузки кода на ваш Arduino, вы должны увидеть, как двигатели или светодиоды реагируют на сигналы ШИМ. Двигатели начнут работать с установленной скоростью и могут быть остановлены или отрегулированы динамически. Если вы заметите какие-либо проблемы, проверьте наличие обратной полярности или неправильного подключения, так как это распространенные ошибки (в видео на 12:30).

Временные метки видео

  • 00:00 Начало
  • 00:58 Объяснение аппаратного обеспечения
  • 07:53 Объяснение проводки
  • 10:13 Объяснение кода Arduino для YYNMOS-4
  • 14:51 Демонстрация без Arduino
  • 16:32 Демонстрация с Arduino

Изображения

YNMOS-4: ready
YNMOS-4: ready
YNMOS-4: with Arduino 1
YNMOS-4: with Arduino 1
YNMOS-4: with Arduino 2
YNMOS-4: with Arduino 2
YNMOS-4: Arduino Wiring Close-up
YNMOS-4: Arduino Wiring Close up
YNMOS-4: Arduino Wiring with an LED Strip
YNMOS-4: Arduino Wiring with LED Strip
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)

Ресурсы и ссылки

Файлы📁

Нет доступных файлов.