Publicado por el 13 junio, 2017 Deja tus dudas en los comentarios
Dificultad bajaComplejidad baja
CC BY-SA 4.0

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, ya que 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. Te animo que eches un vistazo al vídeo para aprender un poco más.


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. Echale 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.

Sobre el autor
Enrique Gómez
Amante de la ingeniería electrónica, de la comunicación audiovisual y de la divulgación ingenieril y científica. Friki de Star Wars desde el principio. Puedes saber más sobre mi y sobre mis trabajos en enrique.rinconingenieril.es
Artículos relacionados
Deja un comentario