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.

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


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.
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
++
/*
* 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
-
Amazon
-
eBay
-
AliExpressAchetez YYNMOS-4 4 Canaux MOSFET sur AliExpresss.click.aliexpress.com
-
AliExpressAchetez YYNMOS-4 4 Canaux MOSFET sur AliExpress.s.click.aliexpress.com
-
AliExpressAchetez YYNMOS-4, un MOSFET à 4 canaux, sur AliExpresss.click.aliexpress.com
Ressources et références
-
Externe1N4148 (T4) SMD diode à commutation rapide fiche technique (PDF)pdf.datasheetcatalog.com
-
Externe60N03 MOSFET, 12mΩ, 30V, 45A fiche technique (PDF)cdn.datasheetspdf.com
-
Externe
Fichiers📁
Aucun fichier disponible.