Come utilizzare un YYNMOS-4 MOSFET a 4 canali per controllare motori CC da 5A a 20A o strisce LED.
In questo tutorial, esploreremo come controllare vari carichi in corrente continua, come motori e strisce LED, utilizzando il modulo MOSFET a 4 canali YYNMOS-4. Questo modulo consente di gestire efficacemente l'intensità delle luci o la velocità dei motori. Con la sua capacità di gestire carichi tra 5A e 20A, può essere un componente essenziale nei tuoi progetti elettronici.

Collegheremo il modulo MOSFET a un Arduino, permettendoci di controllare i carichi tramite PWM (Modulazione della Larghezza d'Impulso). Questo approccio consente un controllo fluido sul funzionamento di motori e luci. Per una guida visiva, consiglio di guardare il video correlato (nel video a :00).
Hardware Spiegato
Il modulo YYNMOS-4 include quattro MOSFET che possono gestire correnti significative, rendendolo ideale per alimentare vari carichi. Ogni MOSFET opera con bassa resistenza (da 10 a 16 milliohm quando attivo), consentendo una consegna di energia efficiente. Puoi collegare fino a quattro dispositivi con una corrente massima di 5A ciascuno, e con un adeguato dissipatore di calore, questa può essere aumentata fino a 20A.
Oltre ai MOSFET, il modulo presenta terminali di ingresso per segnali di controllo e terminali di uscita per collegare i tuoi carichi. L'ingresso può accettare segnali da 3V a 20V, rendendolo compatibile con la maggior parte dei microcontrollori, incluso Arduino. Il modulo include anche LED per indicare lo stato di ciascuna uscita, fornendo un feedback visivo durante il funzionamento.
Dettagli della scheda dati
| Produttore | YYNMOS |
|---|---|
| Numero di parte | YYNMOS-4 |
| Tensione logica/IO | 3-20 V |
| Tensione di alimentazione | 5-36 V |
| Corrente di uscita (per canale) | 5 A |
| Corrente di picco (per canale) | 20 A |
| Guida sulla frequenza PWM | ~1 kHz |
| Soglie logiche di ingresso | Alto: > 3 V, Basso: < 1 V |
| Caduta di tensione / RDS(on)/ saturazione | 10-16 mΩ |
| Limiti termici | Fino a 85°C |
| Pacco | Modulo PCB standard |
| Note / varianti | Compatibile con i PLC |
- Assicurati di avere un adeguato dissipatore di calore per correnti superiori a 5A.
- Controlla le tensioni nominali prima di collegare i carichi.
- Utilizzare segnali PWM per il controllo della velocità o dell'intensità.
- Essere consapevoli dei limiti termici per prevenire surriscaldamenti.
- Controlla due volte i cavi per prevenire cortocircuiti.
Istruzioni per il cablaggio


Per cablare il modulo YYNMOS-4, inizia collegando l'alimentatore. Collega il terminale positivo della tua fonte di alimentazione aDC+terminale sul modulo e il terminale negativo alDC-terminale. Ogni carico che desideri controllare si collegherà a una delle coppie di uscita. Ad esempio, collega il positivo del tuo carico al rispettivo terminale di uscita e il negativo a terra.
Per i segnali di controllo, collega i pin abilitati PWM della tua Arduino ai pin di ingresso corrispondenti del modulo YYNMOS-4. Ad esempio, se stai utilizzando i pin 3, 5, 6 e 9 sull'Arduino, collegali agli ingressi PWM del modulo. Assicurati che la massa dell'Arduino sia collegata anche alla massa del modulo YYNMOS-4 per mantenere un punto di riferimento comune.
Esempi di codice e guida passo passo
Il seguente frammento di codice dimostra come definire i pin necessari e controllare i motori o i LED utilizzando segnali PWM. La variabilemotorè un array che contiene i numeri dei pin per un facile riferimento.
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};
In questo estratto, definiamo quattro pin PWM per controllare ciascun motore o LED. L'arraymotorci consente di fare riferimento a questi pin in modo semplice in seguito nel codice.
Illoop()la funzione mostra come attivare i motori a diverse velocità:
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
}
Questo segmento di codice attiva il motore 1 al 75% della velocità per 4 secondi, poi lo ferma per 3 secondi. Regolare la velocità e il tempo consente un controllo flessibile dei carichi.
Per il codice completo, si prega di fare riferimento al programma completo caricato sotto l'articolo.
Dimostrazione / Cosa Aspettarsi
Una volta completato il cablaggio e caricato il codice sul tuo Arduino, dovresti osservare i motori o i LED rispondere ai segnali PWM. I motori inizieranno alla velocità definita e possono essere fermati o regolati dinamicamente. Se noti problemi, controlla la polarità invertita o il cablaggio errato, poiché sono errori comuni (nel video alle 12:30).
Timestamp video
- 00:00 Inizio
- 00:58 Spiegazione dell'hardware
- 07:53 Spiegazione del cablaggio
- 10:13 Codice Arduino per YYNMOS-4 Spiegato
- 14:51 Dimostrazione senza Arduino
- 16:32 Dimostrazione con 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)
Cose di cui potresti avere bisogno
-
Amazon
-
eBay
-
AliExpressAcquista YYNMOS-4 4 Canali MOSFET da AliExpresss.click.aliexpress.com
-
AliExpressAcquista YYNMOS-4 4 Channel MOSFET da AliExpresss.click.aliexpress.com
-
AliExpressAcquista YYNMOS-4 Mosfet a 4 canali da AliExpresss.click.aliexpress.com
Risorse e riferimenti
-
Esterno1N4148 (T4) SMD datasheet diodo a commutazione rapida (PDF)pdf.datasheetcatalog.com
-
Esterno60N03 MOSFET, 12mΩ, 30V, 45A scheda tecnica (PDF)cdn.datasheetspdf.com
-
Esterno
File📁
Nessun file disponibile.