bclose

Motores de Corriente continua

Controlando pequeños motores de continua

Objetivos

 

 
    • Presentar los motores de corriente contínua.
    • Comprender las bases de funcionamiento.
    • Montar un circuito típico de uso y control de los motores CC.
    • Montar un variador de velocidad del motor

 

 

Material requerido.

 

  Tienda España Tienda Mexico
Kit Arduino Uno  Kit inicio UNO Kit inicio UNO
Kit Arduino MEGA Kit Inicio Mega Kit Inicio Mega

 

Los motores de corriente continua, o motor CC

 

Es difícil moverse por nuestro mundo sin tropezarte con motores eléctricos de todos los tipos y tamaños. Desde los pequeños con los que arrancas el coche cada mañana a los muy pequeños que mueven tu reproductor de CDs o DVS, al que hace girar el microondas con el que te calientas el café al levantarte, estamos rodeados de motores eléctricos.

Podemos comprar desde grandes motores trifásicos, de corriente alterna, de gran potencia para labores industriales hasta pequeños motores de corriente continua para mover las ruedas de un pequeño coche de control remoto.

En sesiones previas, ya presentamos una introducción a como gobernar servos o pequeños motores de CC, pero ha llegado el momento de dedicarles un poco más de tiempo y detalle a ver lo que son y cómo usarlos en nuestro proyectos de Arduino.

Y como siempre es preferible empezar por el principio vamos a comenzar con los motores de corriente continua y viendo cómo podemos controlarlos.

Estoy seguro, de que todos estaréis familiarizados con el hecho de que los imanes tienen un polo positivo y otro negativo y que mientras que los polos opuestos se atraen, los iguales se repelen.

Imanes

Hay una relación muy estrecha entre la corriente eléctrica y los campos magnéticos que definen las ecuaciones de Maxwell (Ya estamos otra vez) y  resulta que cuando hacemos circular una corriente por un conductor que está inmerso en un campo magnético, este se ve sometido a una fuerza mecánica, que llamamos electromotriz y que podemos usar como principio básico de funcionamiento de un motor eléctrico

Desde un punto de vista práctico, si hacemos circular una corriente por un hilo que está entre los polos de un imán, aparecerá una fuerza mecánica que se opondrá a los cambios de esta corriente e intentara hacer girar el conductor para compensarlos.

La fuerza que aparezca será proporcional a la intensidad del campo magnético, y a el número de conductores que sean recorridos por la corriente, (por eso lo que hacemos es arrollar espiras de cobre o devanados alrededor de un núcleo, para que la fuerza aumente).

Todos los motores eléctricos disponen de dos partes básicas:

 
  • El estator o parte inmóvil que por regla general incluye o bien imanes potentes fijos o generan un campo variable mediante corriente alterna (Lo que nos llevaría a construir un motor de corriente alterna claro)
  • El rotor, en el que disponemos espiras o arrollamientos de hilos de cobre alrededor de un núcleo, para que la fuerza que se ejerce sobre el rotor se multiplique proporcionalmente a este número

 

La idea final es que podemos diseñar motores de corriente continua sencillos para que esta fuerza sea máxima.

Claro que a medida que la fuerza electromotriz hace girar una fracción de vuelta el rotor, al final nos encontraríamos que, llegaríamos a una posición de equilibrio, lo que no nos conviene en absoluto porque se pararía el giro del motor.

Por eso tenemos que complicar un poco más el asunto y asegurarnos de que disponemos de múltiples grupos de espiras en distintas posiciones, de forma que cuando un grupo alcance el equilibrio el otro tome el relevo y el motor siga girando.


Ilustra el giro del motor

Fijaros en los bloques negros marcados como + y – (Que llamamos escobillas) que se mantienen estáticos mientras alimentamos con corriente eléctrica una pareja de espiras con devanados opuestos. Cuando llegan al punto de equilibrio, desconectan ese juego de espiras y  las escobillas alimentan el siguiente juego de espiras durante una fracción de vuelta… y vuelta a empezar.

De ese modo siempre hay un juego de espiras conductoras fuera de la posición de equilibrio que se ve sometido a la fuerza electromotriz y obliga al motor a girar buscando un equilibrio (Como en el caso de los imanes) al que nunca le permitimos llegar.

Vista interior
Esquema interior

En esta imagen izquierda podéis apreciar los arrollamientos de hilo conductor, para un pequeño motor de corriente continua. En la animación de la derecha, podéis apreciar el conjunto girando, y donde Shaft, es el eje de giro. Brushes son las escobillas. Rotor coils son los devanados de hilo conductor y Magnets son imanes.

 

Controlando un motor de CC con Arduino

 

En la sesión transistores, vimos que era muy fácil hacer girar un pequeño motor mediante un transistor que regulase la intensidad de corriente que le entregamos.

En aquella sesión nos centramos casi en exclusiva en el transistor, para presentar este componente, que vamos a utilizar una y otra vez, y prácticamente usamos el motor como excusa sin entrar en el tema. Pero en esta ocasión queremos poner el foco en el motorcito y como lo controlamos y por eso vamos a volver a este ejemplo, pero complicándolo un poco más (Que le vamos a hacer), añadiendo un potenciómetro que nos permita variar la velocidad de giro el motor.

Para ello usaremos un motor de continua, de 5V, con rueda, que podéis encontrar por muy poco dinero y que nos viene de perlas para apreciar el de giro.

Como cualquier motor, por pequeño que sea consume más de lo que uno de los pines de nuestros Duinos pueden proporcionar, necesitamos usar un transistor como el 2N2222 para alimentarlo. Y usaremos uno de los pines de Arduino para gobernar este transistor.

Vamos a repetir el montaje que vimos en la sesión transistores con este motorcito. Os incluyo copia del esquema eléctrico que usamos allí y del diagrama de pines del transistor.

Transistor gobernando un motor

 

 

Detalle pines

Aquí tenéis el esquema inicial sin potenciómetro para que comprobéis las conexiones del motor y que funciona correctamente, antes de seguir.

Protoboard transistor motor

 

Para comprobar que el motor funciona, podéis cargar este pequeño programa, que simplemente varia la tensión que ponemos en el pin 9 para modificar la velocidad de giro del motor:

const int control = 9 ;

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

void loop()
   {
        for ( int n = 0 ; n < 255 ; n++)
          {
              analogWrite (control,  n) ;
              delay(15) ;
          }
   }

Que como veréis, simplemente pone un valor analógico en el pin 9. Podemos controlar la velocidad del motor variando la intensidad de tensión que ponemos en la base del transistor, ya que esta regula la resistencia que el transistor presenta entre emisor y colector.

A 0V el transistor entra en corte (Resistencia infinita) y a 5V está en saturación, con lo que presenta resistencia nula.

 
  • No supongáis que podemos hacer que el motor gire de forma continua para todos los valores de tensión en la base. Por debajo de un cierto umbral se parará y solo girará cuando este se supere.
  • Al hacer crecer el valor de tensión que le damos al motor, la velocidad de giro, irá aumentando progresivamente.   

Aquí os pongo un pequeño video con el resultado:

Vamos a probar ahora a colocar un potenciómetro conectado a la puerta analógica A1, cuya lectura usaremos para variar la señal que ponemos en la base del transistor. Con ella variaremos la velocidad de giro.

La idea es que a medida que aumentamos o disminuimos la tensión en la base del transistor, la caída de tensión en este varia de forma acorde haciendo que el motor reciba más o menos tensión y esto se traduce en una cambo de su velocidad de giro.

Y un programa que lee el potenciómetro y varía la velocidad de giro en consonancia puede ser algo como ésto:

Contenido solo disponible para suscriptores. ¡Accede al contenido!

          

Aquí os pongo un video con el resultado:

Así pues, controlar un pequeño motor de corriente continua es bastante fácil, pero… hasta ahora el motor siempre gira en la misma dirección. ¿Cómo podemos hacer para que invierta su sentido de giro?

Esto queridos amigos será el motivo de la la próxima sesión, porque para eso necesitaremos sofisticar un poco más el circuito

 

Resumen de la sesión

 

 
    • Hemos visto los principios basicos de los motores de corriente continua.
    • Revisamos un típico circuito de alimentación y control.
    • Vimos que la velocidad de giro es proporcional a la tensión que aplicamos en bornas del motor.
    • Vimos como variar la velocidad usando esta idea.

 

 

 

 

Para porder realizar consultas a nuestros expertos, tienes que ser suscriptor. Suscribiendote nos ayudas a mantener este proyecto en marcha.

¡ Quiero Suscribirme !

Si ya eres premium y no puedes comentar haz login. Hacer login

(106) Comments

  • Avatar for Charly
    • Francisco

    como podria hacer funcionar un motor de 12 volts

  • Avatar for Charly
    • Prueba TPV TPV

    Hola Jose, es de lo mas sencillo
    void loop()
    analogWrite (control, 100) ;
    delay(2000) ;

    analogWrite (control, 100) ;
    delay(8000);

  • Avatar for Charly
    • José

    Hola, no sé si me podréis ayudar, llevo un par de días tratando de que un motor CC haga lo que necesito y quiero, tengo un Arduino uno (que no se note que empecé a programar hace poco con Arduino jeje).
    Pasa que lo que yo ocupo, es que el motor empiece a girar con una velocidad de 100 (esto no tiene que ser así), que esté a esa velocidad por un tiempo de 2 segundos (aproximado), al acabar los 2 segundos pase a la velocidad de 255 (máxima), pongámonos por unos 8 segundos y que al finalizar el tiempo, vuelva a hacer lo mismo que el principio, bajar a una velocidad de 100 y apagar.
    Me he paseado por varios foros buscando una ayuda, pero no he dado con la solución, llámenme tonto, ciego, que no soy un buen buscador, tal vez la solución es más fácil de lo que parezca, pero yo estoy liado haha.

  • Avatar for Charly
    • Ivan Uriarte

    10 kohm como pone en el listado de material.

  • Avatar for Charly
    • Vitto garcia

    el potenciometro de que valor es?

  • Avatar for Charly
    • Jesús Sánchez

    Hola.

    Los BC547 soportan apenas 100mA. No son válidos para manejar motores o similares. Debes recurrir a transistores más potentes, como puede ser un BD135 -137 -139, que soportan 1.5A. Un motor con reductora puede demandar más de 100mA en vacío. Con carga ya fundes el transistor.

  • Avatar for Charly
    • Juan carlos macho mangas

    Tienes que tener en cuanta que cada transistor tiene sus caracteristicas y manias y no puedes suponer que un circuito que funciona con uno lo hara tambien para cualquier otro. Tienes que buscar en internet un circuito similar con tu transistor y por cierto no es buena señal que se claiente tanto

  • Avatar for Charly
    • MotorHeadDC

    Hola, en primer lugar, muchas gracias por vuestros tutoriales. Son geniales.
    Mi duda es la siguiente:

    He intentado conectar dos motores DC de 3V (con reductora) y accionarlos usando el mismo esquema que habéis puesto vosotros en este tutorial. La única diferencia es que lo tengo todo duplicado, es decir, dos motores con sus dos transistores sus dos resistencias etc… Los transistores son BC547b y las resistencias que he conectado a base son de 220 ohm porque no tenía a mano de 330. Activo los transistores mediante las salidas digitales 12 y 13 al pulsar una tecla del ordenador.
    El problema es que siempre uno de los dos transistores se calienta mucho (quema) al poco de ponerse a correr los motores. Los leds de protección emiten algún destello de vez en cuando (supongo que eso no es bueno :/). ¿Alguna sugerencia? ¿Dónde estoy metiendo la pata? ¿Debo usar otro tipo de transistores? No dispongo de shields ni drivers ni nada de eso.

    Muchas gracias!

  • Avatar for Charly

    Tendría que configurar que si en tu receptor deja de haber una señal, se interrumpa la alimentación a la base del transistor, ya que esta es la reguladora del voltaje que pasa del microcontrolador al motor.

  • Avatar for Charly
    • Ivan Uriarte

    Hola Clarissa, yo no puedo ayudarte en eso, a ver si alguien puede echarte una mano. Un saludo.

  • Avatar for Charly
    • Clarissa

    Hola, Si quiero quiero usar diodos infrarrojos emisor y receptor para que detenga el motor cuando se interrumpa la señal infrarroja pero estoy usando PIC18F4550 para programar, ¿A donde conecto la señal que voy a enviar desde el PIC para que se detenga el motor si se interrumpe la señal infrarroja?

  • Avatar for Charly
    • Jesús Sánchez

    Hola Josue.

    Debes usar reles DPDT. Con ellos puedes invertir el giro de los motores. Si buscas en Internet «control sentido motor con rele» o similar, verás cómo es el conexionado.

    Saludos.

  • Avatar for Charly
    • Ivan Uriarte

    Hola Josue, deberías montar un circuito H-bridge o usar un l293D

  • Avatar for Charly
    • Ivan Uriarte

    la forma más sencilla sería usar un delay. Le pones un delay(10000); después de encenderlos y otro después de apagarlos. Un saludo.

  • Avatar for Charly
    • JOSUE

    Hola, si me pudieses ayudar seria excelente. estoy en un proyecto

    y tengo que usar máximo 2 relevadores y tengo que usar 4 motores (2 motores funcionan en un solo relevador, los dos al mismo tiempo)

    necesito saber si hay una forma para invertir el giro de motor con los relevadores?
    si alguna manera de invertirlo con transistores pero usando siempre los dos relevadores

    de verdad ojala me puedas ayudar, te lo agradecería, haces un buen trabajo

  • Avatar for Charly
    • Camila

    Hola, como haría para poder controlar el tiempo en que las ruedas giran? Es decir 10 segundos girando y que 10 segundo paren y así sucesivamente…

  • Avatar for Charly
    • Jesús Sánchez

    Hola Fernando. Solo tienes que coger un potenciómetro de 10K, por ejemplo, y de las tres patas que trae, la de la izquierda la conectas a 5V, la central al pin analógico que usas en el sketch (A1 en este caso), y la tercera pata a GND. Si el potenciómetro es de 100K tampoco pasa nada.
    Saludos.

  • Avatar for Charly
    • Fernando

    Hola, no tengo conocimientos de electrónica pero tengo muchas ganas de aprender y a todos los que estamos en esta situación nos ayudaría mucho el esquela del potenciometro. Excelente trabajo!

  • Avatar for Charly
    • Admin

    Hola Mario, en el tuto tienes la descripcion de todo el montaje ¿No?

  • Avatar for Charly
    • Mario montaño

    hola muy buen tutorial, solo algo me intriga, a mi nunca me ha funcionado como un PPP un 2n2222. como lo lograron?

Para porder realizar consultas a nuestros expertos, tienes que ser suscriptor. Suscribiendote nos ayudas a mantener este proyecto en marcha.

¡ Quiero Suscribirme !

Si ya eres premium y no puedes comentar haz login. Hacer login