Mosfets y Arduino
Mosfets y Arduino
¡Chau!
Este tutorial tiene como objetivo ilustrar, de una manera sencilla, cómo usar un MOSFET
para conducir cargas con Arduino.
De hecho, gracias a este componente podremos controlar dispositivos que requieren una
(relativamente) alta cantidad de corriente, como tiras de LED, motores, calentadores,
solenoides y mucho más.
No estaré aquí para explicar la teoría detrás de los transistores tipo MOSFET , primero
porque no soy la persona más indicada, y segundo porque el propósito de este post es
solo tener una primera aproximación práctica con este componente. Veremos solo
algunos consejos prácticos y algunas características con las que tendremos que
interactuar desde los primeros usos.
Vayamos directo al grano, el mosfet que utilicé en este caso es un IRF520 , un dispositivo
muy popular, de hecho también está presente en el kit de inicio oficial de Arduino.
Este es un mosfet N-CHANNEL tipo ENANCHMENT, en la práctica significa que permite el
paso de una corriente entre los pines DRAIN y SOURCE solo si aplico un voltaje adecuado
en el pin GATE.
El paso máximo de corriente (9,2 Amperios a 25°C) puede darse cuando aplico un voltaje
de unos 10V al GATE (en el caso del IRF520).
Esto quiere decir que si manejo la puerta directamente con una salida digital Arduino (5
Voltios), el mosfet admitirá un paso de corriente entre drenaje y fuente de un máximo de
2 Amperios (siempre a 25°C, ver figura 1 de esta ficha técnica ) .
Otro factor a considerar es la frecuencia con la que nuestro Arduino cambiará nuestro
mosfet.
De hecho, para manejar nuestro mosfet no aplicaré simplemente 5 voltios o 0 voltios en la
puerta con la función "digitalWrite", sino que usaré la función "analogWrite" y, por lo
tanto, el PWM.
Sin embargo, aquí podría surgir un problema, porque la frecuencia del Arduino PWM en el
pin elegido puede no ser la más adecuada para mi aplicación.
En Arduino, los pines 3,9,10,11 tienen una frecuencia de unos 488hz y los pines 5, 6 de
976hz.
488hz podría ser un valor aceptable, pero como Arduino lo permite, intentemos
aumentarlo.
Para aumentar la frecuencia de PWM, actuaré (en el boceto) en los temporizadores de mi
microcontrolador, lo que llevará la frecuencia de PWM en el pin 9 a 3906 HZ.
Obviamente debemos considerar que incluso el mosfet tardará un tiempo en pasar de un
estado a otro (en el caso del IRF520 30ns para cerrar y 20ns para abrir) pero en la mayoría
de los casos es posible descuidar esto.
Aquí está el diagrama para conectar nuestro Arduino a un pequeño motor de CC, como
puede ver, hay un diodo en los polos del motor, este diodo generalmente se ve cuando
quiero conducir una bobina (por ejemplo, la de las bobinas del relé),
La función de este diodo es limitar la sobretensión provocada por la inductancia del motor
cuando se abre el mosfet (comportamiento típico de las cargas inductivas).
Esta sobretensión podría dañar tu mosfet ya que incluso podría superar el Vds máximo
(tensión entre drenaje y fuente), poniendo un diodo en su lugar la sobretensión se
descargará en la propia bobina del motor.
Un buen estudio en profundidad sobre este tema se puede encontrar en este enlace .
Lo último a tener en cuenta es que algunos diseñadores insertan una resistencia en serie
entre la salida de Arduino y la puerta de mosfet, esto debería servir para proteger el
puerto Arduino de cualquier retorno que pueda dañarlo.
Personalmente, conduciendo cargas pequeñas, no he notado esta necesidad, pero si
quieres puedes ponerle una resistencia de cien ohmios.
EDITAR:
según lo recomendado por un lector en los comentarios, puse una resistencia en serie
entre la salida de Arduino y el mosfet para limitar la corriente en la salida en la fase de
conmutación del mosfet. ¡Me disculpo por no haberlo pensado antes! ;).
Y aquí está el boceto que leerá el valor de la entrada analógica en el pin A0, escalará el
valor y lo llevará a la salida del mosfet.
en la línea 8 puede ver la función utilizada para configurar la frecuencia PWM de 3906 hz
en los pines 9 y 10
1. int trimmer_pin = A0 ;
2. int trimmer_val ;
3. int mosfet_pin = 9 ;
4. int valor_mosfet ;
5.
6. configuración nula ( )
7. {
9.
10. De serie. comenzar ( 9600 ) ;
11. pinMode ( trimmer_pin , ENTRADA ) ;
12. pinMode ( mosfet_pin , SALIDA ) ;
13. }
14.
15. bucle vacío ( )
16. {
17. trimmer_val = analogRead ( trimmer_pin ) ;
19. De serie. println ( trimmer_val ) ;
20. mosfet_val = mapa ( trimmer_val , 0 , 1023 , 0 , 255 ) ;
21. analogWrite ( mosfet_pin , mosfet_val ) ;
23. De serie. println ( mosfet_val ) ;
24. }
aquí encontrarás un post para dar los primeros pasos con el Arduino PWM
aquí encontrará el artículo más detallado, del sitio web de Arduino, que muestra cómo
cambiar las frecuencias PWM en los distintos
pines.Si está buscando módulos mosfet listos para usar, puede encontrarlos en eBay
haciendo clic aquí .
Para cualquier cosa, por favor deje un comentario a continuación,
¡Chau!
¡Sígueme en mis páginas para estar al tanto de las nuevas publicaciones!
Daniela Fecha: 08/05/2016