Code de recherche

Comment utiliser un YYNMOS-4 à 4 canaux MOSFET pour contrôler des moteurs à courant continu de 5A à 20A ou des bandes lumineuses LED

Comment utiliser un YYNMOS-4 à 4 canaux MOSFET pour contrôler des moteurs à courant continu de 5A à 20A ou des bandes lumineuses LED

Dans ce tutoriel, nous allons explorer comment contrôler diverses charges en courant continu, telles que des moteurs et des bandes LED, en utilisant le module MOSFET 4 canaux YYNMOS-4. Ce module vous permet de gérer efficacement l'intensité des lumières ou la vitesse des moteurs. Avec sa capacité à gérer des charges allant de 5A à 20A, il peut être un composant essentiel dans vos projets électroniques.

YNMOS-4: with Arduino 1

Nous connecterons le module MOSFET à un Arduino, ce qui nous permettra de contrôler les charges par PWM (Modulation de Largeur d'Impulsions). Cette approche permet un contrôle fluide du fonctionnement des moteurs et des lumières. Pour un guide visuel, je recommande de regarder la vidéo associée (dans la vidéo à 00:00).

Matériel expliqué

Le module YYNMOS-4 comprend quatre MOSFETs qui peuvent gérer des courants significatifs, ce qui le rend idéal pour alimenter diverses charges. Chaque MOSFET fonctionne avec une faible résistance (de 10 à 16 milli-ohms lorsqu'il est en marche), permettant une livraison d'énergie efficace. Vous pouvez connecter jusqu'à quatre appareils avec un courant maximum de 5A chacun, et avec un bon dissipateur de chaleur, cela peut être augmenté à 20A.

En plus des MOSFET, le module dispose de bornes d'entrée pour les signaux de contrôle et de bornes de sortie pour connecter vos charges. L'entrée peut accepter des signaux de 3V à 20V, ce qui le rend compatible avec la plupart des microcontrôleurs, y compris Arduino. Le module comprend également des LED pour indiquer l'état de chaque sortie, fournissant un retour visuel pendant le fonctionnement.

Détails de la fiche technique

Fabricant YYNMOS
Numéro de pièce YYNMOS-4
Tension logique/IO 3-20 V
Tension d'alimentation 5-36 V
Courant de sortie (par canal) 5 A
Courant de crête (par canal) 20 A
Orientation sur la fréquence PWM ~1 kHz
Seuils de logique d'entrée Élevé : > 3 V, Bas : < 1 V
Chute de tension / RDS(on)/ saturation 10-16 mΩ
Limites thermiques Jusqu'à 85°C
Colis Module PCB standard
Notes / variantes Compatible avec les automates programmables (PLC)

  • Assurez un bon refroidissement pour des courants supérieurs à 5A.
  • Vérifiez les tensions nominales avant de connecter des charges.
  • Utilisez des signaux PWM pour le contrôle de la vitesse ou de l'intensité.
  • Soyez conscient des limites thermiques pour éviter la surchauffe.
  • Vérifiez à nouveau le câblage pour éviter les courts-circuits.

Instructions de câblage

YNMOS-4: Arduino Wiring with an LED Strip
YNMOS-4 : Câblage Arduino avec bande LED — YNMOS-4: Arduino Wiring with an LED Strip
robojax_YYNMOS-4-img6
robojax_YYNMOS-4-img6

Pour câbler le module YYNMOS-4, commencez par connecter l'alimentation. Connectez la borne positive de votre source d'alimentation à laDC+bornes sur le module et la borne négative à laDC-terminal. Chaque charge que vous souhaitez contrôler sera connectée à l'une des paires de sortie. Par exemple, connectez le positif de votre charge à la borne de sortie respective et le négatif à la terre.

robojax_YYNMOS-4-img6
robojax_YYNMOS-4-img6

Pour les signaux de contrôle, connectez les broches compatibles PWM de votre Arduino aux broches d'entrée correspondantes du module YYNMOS-4. Par exemple, si vous utilisez les broches 3, 5, 6 et 9 sur l'Arduino, connectez-les aux entrées PWM sur le module. Assurez-vous que la masse de l'Arduino est également connectée à la masse du module YYNMOS-4 pour maintenir un point de référence commun.

Exemples de code et guide étape par étape

Le code suivant montre comment définir les broches nécessaires et contrôler les moteurs ou les LED à l'aide de signaux PWM. La variablemotorest un tableau contenant les numéros de broche pour une référence facile.


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

Dans cet extrait, nous définissons quatre broches PWM pour contrôler chaque moteur ou LED. Le tableaumotornous permet de référencer facilement ces broches plus tard dans le code.

Leloop()la fonction montre comment activer les moteurs à différentes vitesses :


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
}

Ce segment de code active le moteur 1 à 75 % de sa vitesse pendant 4 secondes, puis l'arrête pendant 3 secondes. Ajuster la vitesse et le timing permet un contrôle flexible des charges.

Pour le code complet, veuillez vous référer au programme complet chargé en dessous de l'article.

Démonstration / À quoi s'attendre

Après avoir terminé le câblage et téléchargé le code sur votre Arduino, vous devriez observer les moteurs ou les LED réagir aux signaux PWM. Les moteurs démarreront aux vitesses définies et peuvent être arrêtés ou ajustés dynamiquement. Si vous remarquez des problèmes, vérifiez la polarité inversée ou un câblage incorrect, car ce sont des pièges courants (dans la vidéo à 12:30).

Horodatages vidéo

  • 00:00 Début
  • 00:58 Explication du matériel
  • 07:53 Explication du câblage
  • 10:13 Code Arduino pour YYNMOS-4 expliqué
  • 14:51 Démonstration sans Arduino
  • 16:32 Démonstration avec Arduino

Images

YNMOS-4 : prêt
YNMOS-4 : prêt
YNMOS-4 : avec Arduino 1
YNMOS-4 : avec Arduino 1
YNMOS-4 : avec Arduino 2
YNMOS-4 : avec Arduino 2
YNMOS-4 : Détail du câblage Arduino
YNMOS-4 : Détail du câblage Arduino
YNMOS-4 : Câblage Arduino avec bande LED
YNMOS-4 : Câblage Arduino avec bande 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
Langue: 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)

Ce dont vous pourriez avoir besoin

Fichiers📁

Aucun fichier disponible.