Código de Pesquisa

Como Usar um YYNMOS-4 de 4 Canais MOSFET para Controlar Motores DC de 5A a 20A ou Fitas de LED

Como Usar um YYNMOS-4 de 4 Canais MOSFET para Controlar Motores DC de 5A a 20A ou Fitas de LED

Neste tutorial, exploraremos como controlar várias cargas de CC, como motores e tiras de LED, usando o módulo MOSFET de 4 canais YYNMOS-4. Este módulo permite que você gerencie a intensidade das luzes ou a velocidade dos motores de forma eficaz. Com sua capacidade de suportar cargas entre 5A e 20A, pode ser um componente essencial em seus projetos eletrônicos.

YNMOS-4: with Arduino 1

Vamos conectar o módulo MOSFET a um Arduino, permitindo-nos controlar as cargas através de PWM (Modulação por Largura de Pulso). Essa abordagem possibilita um controle suave sobre a operação de motores e luzes. Para um guia visual, recomendo assistir ao vídeo associado (no vídeo em :00).

Hardware Explicado

O módulo YYNMOS-4 inclui quatro MOSFETs que podem lidar com correntes significativas, tornando-o ideal para acionar várias cargas. Cada MOSFET opera com baixa resistência (10 a 16 mili-ohms quando ligado), permitindo uma entrega eficiente de energia. Você pode conectar até quatro dispositivos com uma corrente máxima de 5A cada, e com um bom dissipador de calor, isso pode ser aumentado para 20A.

Além dos MOSFETs, o módulo possui terminais de entrada para sinais de controle e terminais de saída para conectar suas cargas. A entrada pode aceitar sinais de 3V a 20V, tornando-o compatível com a maioria dos microcontroladores, incluindo Arduino. O módulo também inclui LEDs para indicar o status de cada saída, fornecendo feedback visual durante a operação.

Detalhes da Ficha Técnica

Fabricante YYNMOS
Número da peça YYNMOS-4
Tensão lógica/IO 3-20 V
Tensão de alimentação 5-36 V
Corrente de saída (por canal) 5 A
Corrente de pico (por canal) 20 A
Orientação sobre a frequência PWM ~1 kHz
Limites de lógica de entrada Alto: > 3 V, Baixo: < 1 V
Queda de tensão / RDS(on)saturação 10-16 mΩ
Limites térmicos Até 85°C
Pacote Módulo de PCB padrão
Notas / variantes Compatível com PLCs

  • Assegure a dissipação de calor adequada para correntes acima de 5A.
  • Verifique as classificações de voltagem antes de conectar cargas.
  • Use sinais PWM para controle de velocidade ou intensidade.
  • Esteja ciente dos limites térmicos para evitar o superaquecimento.
  • Verifique a fiação para evitar curtos-circuitos.

Instruções de Fiação

YNMOS-4: Arduino Wiring with an LED Strip
YNMOS-4: Fiação Arduino com Fita de LED — YNMOS-4: Arduino Wiring with an LED Strip
robojax_YYNMOS-4-img6
robojax_YYNMOS-4-img6

Para conectar o módulo YYNMOS-4, comece conectando a fonte de alimentação. Conecte o terminal positivo da sua fonte de energia aoDC+terminal no módulo e o terminal negativo para oDC-terminal. Cada carga que você deseja controlar será conectada a um dos pares de saída. Por exemplo, conecte o positivo da sua carga ao terminal de saída correspondente e o negativo ao aterramento.

robojax_YYNMOS-4-img6
robojax_YYNMOS-4-img6

Para os sinais de controle, conecte os pinos com PWM do seu Arduino aos pinos de entrada correspondentes no módulo YYNMOS-4. Por exemplo, se você estiver usando os pinos 3, 5, 6 e 9 no Arduino, conecte-os às entradas PWM no módulo. Certifique-se de que o terra do Arduino também esteja conectado ao terra do módulo YYNMOS-4 para manter um ponto de referência comum.

Exemplos de Código e Tutorial

O seguinte trecho de código demonstra como definir os pinos necessários e controlar os motores ou LEDs usando sinais PWM. A variávelmotoré um array que contém os números dos pinos para fácil referência.


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};

Neste trecho, definimos quatro pinos PWM para controlar cada motor ou LED. O arraymotorpermite-nos referenciar facilmente esses pinos mais tarde no código.

Oloop()a função mostra como ativar os motores em diferentes velocidades:


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
}

Esse segmento do código ativa o motor 1 a 75% de velocidade por 4 segundos, depois o para por 3 segundos. Ajustar a velocidade e o tempo permite um controle flexível das cargas.

Para o código completo, consulte o programa completo carregado abaixo do artigo.

Demonstração / O que Esperar

Após completar a fiação e carregar o código no seu Arduino, você deve observar os motores ou LEDs respondendo aos sinais PWM. Os motores começarão nas velocidades definidas e podem ser parados ou ajustados dinamicamente. Se você notar algum problema, verifique se há polaridade invertida ou fiação incorreta, pois esses são erros comuns (no vídeo às 12:30).

Carimbos de vídeo

  • 00:00 Iniciar
  • 00:58 Hardware Explicado
  • 07:53 Explicação da Fiação
  • 10:13 Código Arduino para YYNMOS-4 Explicado
  • 14:51 Demonstração sem Arduino
  • 16:32 Demonstração com Arduino

Imagens

YNMOS-4: pronto
YNMOS-4: pronto
YNMOS-4: com Arduino 1
YNMOS-4: com Arduino 1
YNMOS-4: com Arduino 2
YNMOS-4: com Arduino 2
YNMOS-4: Detalhe da Fiação do Arduino
YNMOS-4: Detalhe da Fiação do Arduino
YNMOS-4: Fiação Arduino com Fita de LED
YNMOS-4: Fiação Arduino com Fita de 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
Idioma: 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)

Coisas que você pode precisar

Arquivos📁

Nenhum arquivo disponível.