Variador para lancha con MOSFET de canal N y microcontrolador de Arduino

Hoy he empezado a hacer pruebas para ver si es viable hacer un variador de motor para una lancha radiocontrolada. Tenemos una lancha rápida (con su motor) desde hace muchos años y la queremos rehabilitar. La idea es aprovechar la emisora, el receptor y la batería de un avión para usarlos en la lancha. Hará falta el variador que estoy diseñando y un servo para el timón.


El variador consiste en un microcontrolador para convertir las señales (que funciona a 5V) y en un transistor MOSFET de canal N como elemento conmutador, concretamente el IRLB8743. Éste operará al voltaje de la batería, aunque yo he hecho las pruebas con la salida de 12V de una fuente de XBox, que ofrece hasta 14 amperios.


En las pruebas he usado un potenciómetro para controlar la velocidad del motor, aunque en la versión final el micro leerá la señal de tipo servo que proviene del receptor de radiofrecuencia. Según el valor deseado enviará la señal modulada por ancho de pulso (PWM o Pulse Width Modulation) que llega al transistor MOSFET y regula la velocidad del motor.


Esquema variadorLas pruebas han ido bastante bien, la variación de velocidad funciona correctamente. El único problema es que el MOSFET se calienta mucho y rápidamente (no he puesto el motor a máxima potencia más de dos segundos, y a baja potencia menos de 10 segundos). Entre cada prueba he dejado que se enfriara. He leído en algún foro que los MOSFET se pueden poner en paralelo (cada uno con su resistencia de 10 KOhm de pullup a alimentación), con lo que podría poner los cuatro que tengo y se calentarían mucho menos, y obviamente les pondría disipador.


Foto de las pruebas (está desconectado) con el circuito del microcontrolador en el protoboard, el MOSFET sujetado con pinzas de cocodrilo, el motor a la derecha y los cables y el conector de la fuente de alimentación de XBox a la izquierda. El cable USB arriba a la izquierda lo uso para monitorizar el micro y programarlo:


variador_motor_1Y ya sólo queda hacer la parte de recepción de la señal, que haré cuando tengamos el avión y el receptor. Para ello simplemente basta con conectar el pin con la “señal de servo” (no he encontrado un término para este tipo de señal) a un pin del microcontrolador y usar la función pulseIn() de Arduino que nos dirá el ancho del pulso en microsegundos (lo que indica 0 grados para 0.3 ms y 180 grados para 2.1 ms, aproximadamente). Las señales de los servos suelen ser de 50 Hz, es decir 20 ms de separación entre el inicio de cada pulso.


Además habrá que hacer el programa del microcontrolador tolerante a fallos, es decir si deja de recibir pulsos se ha de detener el motor… y poco más.


También se pueden meter más canales del receptor al micro (si sobran canales, ya que se usa uno para el motor y otro directamente al servo del timón), que podrían servir para encender/apagar luces, algún actuador… no sé.


Y queda por supuesto hacer el circuito final, que ha de ser lo más reducido posible porque no hay mucho espacio dentro de la lancha.


Hasta la próxima!


Edit: Al día siguiente he hecho algunas pruebas más, y poniendo un diodo entre los bornes del motor se ha solucionado el calentamiento del MOSFET. No se calienta nada! No hace falta ni disipador, ni tendré que poner varios en paralelo. Perfecto :)