Questo piccolo modulo è una scheda breakout su cui è presente un MOSFET IRF520 che funziona come uno Switch cioè interruttore, con esso è possibile sostituire per esempio l’utilizzo di un relè.
Il modulo è progettato per commutare carichi alimentati in corrente continua. La gestione è possibile tramite un singolo pin digitale del microcontrollore. Altri possibili esempi di utilizzo sono pilotare un motore CC per applicazioni robotiche, o controllare altri carichi, sempre in corrente continua.
Indice
Descrizione del modulo IRF520 MOSFET
Il modulo IRF520 MOSFET è fornito di terminali a vite per interfacciarsi al carico e alla fonte di alimentazione esterna. Un indicatore LED fornisce un’indicazione visiva di quando il carico viene cambiato.
Caratteristiche:
- Dimensioni modulo: 33,4 * 25,6 mm
- Tensione di pilotaggio: 3,3-5V
- Controllo: digitale.
- Tensione di carico in uscita: da 0 a 24V
- Corrente di carico in uscita: 2A con pilotaggio di 5V.
Circuito elettrico
Il componente principale è il MOSFET IRF520 (vedere datasheet), la parola MOSFET è l’acronimo del termine inglese Metal-Oxide-Semiconductor Field-Effect Transistor, ovvero semiconduttore metallo-ossido- transistor ad effetto di campo.
Si tratta di semiconduttori molto utilizzati nelle applicazioni comuni di commutazione azionate da tensione, con alta tensione e corrente elevata.
La caratteristica dei MOSFET è che la corrente che transita dal DRAIN (D) Id è pilotata dalla differenza di tensione tra GATE (G) e SOURCE (D) Vgs.
Dal datasheet ricaviamo che il componente è in grado di gestire un’alimentazione (Vds) anche di 100V.
Può arrivare ad impulsi di corrente Idm di 37A o corrente continua a circa 9A.
Il massimo passaggio di corrente (9.2 Ampere a 25°C) potrà avvenire quando applicherò sul GATE una tensione di circa 10V.
Nel caso di pilotaggio del gate direttamente con un’uscita digitale di Arduino (5 Volt) il MOSFET ammetterà un passaggio di corrente tra drain e source di massimo 2 Ampere. Nel caso di 1A è meglio aggiungere un dissipatore di calore
La grossa placca metallica opposta ai 3 pin è direttamente connessa al SOURCE ed è utilizzata per dissipare il calore permettendo la dissipazione di una potenza pari a 60W.
Nel circuito oltre al MOSFET IRF520 Q1 con funzione di switch, è poi presente la resistenza di Pull Down R1 da 1kΩ, questa assicura che il gate sia a zero quando non viene pilotato.
La resistenza R2 ha la funzione di limitatrice per la correte di alimentazione del Led L1 che segnala l’attivazione del MOSFET.
Lo schema elettrico del modulo compreso di PCB, è stato realizzato con il programma EasyEDA e può essere scaricato a questo link. Per informazioni sul programma EasyEDA, leggete questo articolo.
Utilizzo della tecnica PWM
Il modulo IRF520 MOSFET può controllare dei motori DC mediante la tecnica PWM (Pulse Width Modulation).
Con questo sistema si converte una tensione di ingresso costante in una tensione variabile controllando il periodo di tempo in cui l’impulso è ALTO (Duty Cycle – ciclo di lavoro) .
Come visibile nel grafico sotto riportato, con un valore di Duty Cycle apri a 0 % al motore non arriva tensione , mentre con un valore di Duty Cycle pari a 100% al motore sarà fornita la massima tensione.
Nei valori intermedi al motore al motore sarà fornito una tensione sempre più elevata.
Circuito per il test
Per il test occorrono:
- Una scheda Arduino UNO
- Modulo IRF3205
- Potenziometro 10kΩ
- Cavetti di collegamento
- Motore elettrico DC, in questo caso è stato utilizzato un elettro mandrino 9/12 volt 10 watt 800/10000 giri’
- Una fonte di alimentazione per Arduino e una per il motore
Sketch di prova
In questo codice, ruotando il potenziometro, il valore della tensione che giungerà al pin analogico A0, varierà tra 0 e 5V, questo valore sarà trasformato in valore digitale da 0 a 1023.
Con la funzione map , il valore letto sarà convertito poi in un range compreso tra 0 e 255, questo valore sarà utilizzato dal comando analogWrite per fornire il valore PWM.
Si consideri che sino ad un certo valore di tensione minima il motore non ruoterà, mentre ad un certo punto inizierà a ruotare sempre più velocemente a seconda della rotazione del potenziometro.
La tensione di alimentazione non dovrà essere comunque superiore alla tensione massima ammissibile del motore pena il suo possibile danneggiamento.
1 2 3 4 5 6 7 8 9 10 11 12 13 | #define PWM 3 //Definisce il pin di uscita tra 3-5-6-9-10-11 int pot; int out; void setup() { pinMode(PWM,OUTPUT); //Imposta pin PWM come uscita } void loop() { pot=analogRead(A0); //Lettura potenziometro out=map(pot,0,1023,0,255); analogWrite(PWM,out); //Uscita valore PWM } |