• Autor de la entrada:
  • Categoría de la entrada:Arduino

Entre la gran cantidad de motores que existen, uno de los más usados por su facilidad de control y de construcción es el motor DC. En ocasiones necesitamos tener un control absoluto de la velocidad del motor de corriente continua y es cuando recurrimos a la técnica de control de este artículo.

Control de velocidad de motor de corriente continua ¿Cómo?

La velocidad de un motor de corriente continua se modifica variando la tensión media a la que sometemos su bobinado, por tanto este será nuestro objetivo.

Existen multitud de técnicas para variar la tensión media de una señal admisible por un motor de corriente continua. La más clásica es variar el valor de tensión continua con la que alimentamos el motor, por ejemplo conectándolo a una fuente de tensión variable como una fuente de laboratorio.

Pero, existen otras técnicas.

La super técnica, controlar velocidad de motor con PWM

La súper técnica es sencilla, consiste en usar un PWM. El valor de tensión media de una señal modulada en ancho de pulso varía con el ciclo de trabajo de la señal.

Modulando el PWM cambiamos la velocidad el motor, a mayor ciclo de trabajo, mayor velocidad. Si se reduce el ciclo de trabajo se reduce la velocidad.

Si tienes alguna duda sobre qué es el PWM puedes leer el tutorial que tenemos al respecto.

Te animo que eches un vistazo al vídeo para aprender un poco más y verlo en acción.


Controlar VELOCIDAD Motor Corriente Continua

Conectando el motor

El motor lo conectaremos a Arduino usando un MOSFET de canal N tal y como se muestra en la imagen. Recuerda que bajo ningún concepto se debe conectar el motor directamente a Arduino ya que demandaría demasiada corriente y se puede llegar a dañar la salida del microcontrolador.

MOSFET para control de velocidad de motor de corriente continua por PWM
MOSFET motor PWM

Generando el PWM

El PWM lo podemos generar como y con el dispositivo que queramos, en este caso debido a lo fácil que es crearlo con Arduino, y lo famosa que es la placa, voy a optar por esta opción. Échale un vistazo al código, juega y si tienes cualquier duda, no tengas miedo a usar los comentarios.

int value = 0;

void setup() {
pinMode(6,OUTPUT);
}

void loop() {

value = analogRead(0);
value = map(value, 0, 1024, 0, 255);

analogWrite(6, value);
}

A lo mejor te interesa conocer como se controla un motor de paso a paso.

Enrique Gómez

Ingeniero Electrónico Industrial y Automático, amante de la comunicación audiovisual y de la divulgación ingenieril y científica. Friki de Star Wars, cuenta más de lo que parece. Puedes saber más sobre mi y sobre mis trabajos en www.enriquegomez.me