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
Suscribete
Notificame
guest
12 Comments
Nuevos
Antiguos Más votados
Inline Feedbacks
View all comments
Juan Carlos
Juan Carlos
7 meses hace tiempo

Como podría tener el valor de las rpm en la computadora?
Saludos

Salvador Martínez López
Salvador Martínez López
1 año hace tiempo

Se puede hacer con un transistor tip 31?

Johannes Casprowitz
Johannes Casprowitz
1 año hace tiempo

Buenas tardes, tengo un trabajo que consiste en hacer lo que mostraste en el video pero debo de adicionar dos botones, un que aumente en 25 la velocidad cada que se oprima y otro que disminuya en 25 cada que se oprima, agradecería tu ayuda.

Santiago
Santiago
2 años hace tiempo

esto en simulación sea con proteus o otro programa como seria?

Cuevas Sandro
Cuevas Sandro
2 años hace tiempo

Muy buena la info.Gracias

carlos
carlos
3 años hace tiempo

que tipo de potenciometro es

Alfredo
Alfredo
3 años hace tiempo

Como podría invertir el giro?

Javier Sole
Javier Sole
3 años hace tiempo

Grácias por la explicación, Quiero controlar 3 motores independientes y tengo un Arduino UNO y otro MEGA.¿Se puede poner más motores usando otra entrada analógica?. Grácias

Marti
Marti
3 años hace tiempo

Hola que tal, tengo una pregunta
¿Que tipo de transistor mosfet es el que se usa?
Muchas gracias!