4.5 MOTORES
Aprenderemos a conectar a Arduino 3 tipos de motores:
- Servomotor estándar: puede
girar 180º (sólo media
vuelta)
- Servomotor de Rotación Continua:
puede girar de
forma continua.
- Motor de Corriente Continua:
También gira de forma
continua. Son muy baratos pero para conectarlos a Arduino necesitan un
circuito más complejo.
SERVOMOTOR ESTÁNDAR
|
Este motor se
puede posicionar en el ángulo que deseemos entre 0 y 179º
|
Para ello dispone
de 3 patillas:
- Polo +
(o
Vcc): Se conecta al polo + de una pila o a la toma de 5V en
Arduino)
- Polo -
(o
GND) (se conecta al polo - de una pila o a la toma GND en Arduino)
- Pulsos
(también
llamado Señal, Signal o SGN):
es la patilla de control. A través de esta patilla
se le proporcionan los pulsos necesarios para situarlo en el ángulo
deseado
|
 
|
Cada una de
las patillas se identifica mediante un color. Sin embargo
no todos los fabricantes asignan los mismos colores. A continuación se
ven varios ejemplos:
|
|
En
este diagrama se
ve cómo se identifican las patillas para servos de distintos
fabricantes:
|

|
En
resumen, podemos
decir que la asignación de colores es algo así:
|
- Rojo: Polo +
(o Vcc). En Arduino se conectaría
a la toma de 5V.
- Negro o Marrón:
Polo - (o GND). En Arduino se conecta a GND.
- Amarillo, Naranja o Blanco:
Señal. Es la patilla por la que se proporcionan los Pulsos necesarios
para que funcione. En Arduino se conecta a una salida digital (p. ej.
PIN 9)
|
4. 5. SERVOMOTOR ESTÁNDAR
(Ejercicios):
- 4.5.A. Comprueba el
funcionamiento del programa propuesto: Conecta el Servomotor a la
placa de Arduino como se ve en el diagrama siguiente. Carga el programa
indicado y pruébalo.
4.5.A. SERVOMOTOR ESTÁNDAR |
Esquema: |

|
Programa:
|
|
Proto-Board: |

|
- 4.5.B. Usando el mismo
montaje anterior, haz los cambios necesarios en el programa para
posicionar el Servomotor cada vez en alguno de los ángulos
siguientes:
- 4.5.C. FUNCIONAMIENTO PASO A
PASO.
- Vamos a hacer que el motor
avance, paso a paso, desde la posición 0º hasta 180º (en realidad 179º).
Observa los cambios necesarios en el programa. Se trata de introducir
una variable x cuyo valor se va modificando desde 0 hasta 180º,
con incrementos de 1:
4.5.C. FUNCIONAMIENTO PASO A PASO |
Programa: |

|
Instrucciones: |
- Monta el circuito y prueba el
programa.
- El motor se detiene al llegar a
180º (realmente 179º). ¿Por qué crees que ocurre esto?
- Una vez que el motor se ha
detenido ¿Sigue el programa funcionando?
|
- 4.5.D. FUNCIONAMIENTO PASO A
PASO en SENTIDO INVERSO.
- Modifica el programa para que el
motor
avance, grado a grado, desde la posición 180º hasta 0º (en realidad
179º hasta 0º).
- 4.5.E. Pasos más largos. Cambia
el programa para que el motor haga la siguiente secuencia:
- El motor debe variar desde 0º
hasta 180º en saltos de 10º en 10º
- Tras cada salto, el motor debe pararse
un instante en esa posición. El tiempo suficiente para que se
aprecie cada salto.
- Pasado ese tiempo, volverá a
repetirse el ciclo, hasta llegar a 180º
- ¿Cuántos pasos da el motor en
total?
- Prueba a hacer saltos de 5º
en 5º y cuenta los pasos que da el motor.
- ¿Hace los pasos que debería?
Si no es así, ¿a qué puede deberse?
- 4.5.F. Ciclo de funcionamiento
combinado Adelante-Atrás. Crea un programa que realice el
siguiente ciclo:
- El motor debe variar desde 0º
hasta 180º en saltos de 30º en 30º (0º, 30º, 60º,...)
- Cuando llegue a 180º, debe
estar parado un tiempo prolongado en esa posición.
- A continuación, variará su
posición de forma inversa: desde 180º hasta 0º en saltos de 30º.
- Cuando llegue a 0º, estará parado
otro tiempo prolongado.
- Se repetirá el proceso
indefinidamente.
- Entre paso y paso del
motor, habrá un pequeño instante de parada, suficiente para que
sea perceptible.
- ¿Cuántos saltos hace el
motor entre 0º y 180º?
- ¿Y entre 180º y 0º?
- ¿Hace todos los saltos
programados el motor?
- Si no es así ¿cuál crees
que es la razón?
MOTOR DE CONTINUA
|
Este tipo de
motores, más baratos y de
construcción más sencilla, necesita una cantidad de corriente que
Arduino no puede proporcionar, por lo que es necesario utilizar un
circuito adicional de control.
Se les conoce como Motores CC (de Corriente Continua) o Motores DC
(Direct Current).
Puede usarse muchos símbolos para representarlos:
|

|
La característica
de funcionamiento de
este motor es que, si se
conecta con la polaridad correcta, gira en sentido horario
(el de las agujas del reloj). |

|
En cambio, si se
conecta de manera
inversa, el motor gira en sentido antihorario (contrario a las
agujas del reloj)
|

|
¿Cómo se sabe
cual es la conexión + y - del motor? En la mayoría de los casos tendrás
que comprobarlo manualmente, pues no hay ninguna indicación.
|
CIRCUITO INTEGRADO L293D
|
Este circuito es
necesario para que
Arduino pueda controlar un Motor DC.
Las señales de control de Arduino llegan al L293D, que controla los
motores conectados, proporcionándoles suficiente energía para funcionar.
Como se ve en la figura, un circuito integrado o microchip tiene una
serie de patillas numeradas en sentido contrario a las agujas del
relojo, comenzando por el lugar donde hay una ranura o un pequeño
agujero que lo indica.
Debemos conocer el diagrama interior de este circuito para saber cómo
se usa.
Otra posibilidad más fácil, aunque algo más
cara, es usar el Driver
de Motores L298N
que se verá en una práctica posterior. Puede usarse como alternativa al
L293D si éste resulta muy complejo al principio, pero conviene conocer
ambos.
|

(pincha el
dibujo para ver la hoja de características)
|
En esta imagen vemos un diagrama de bloques del circuito interior del
L293D (y el L293 simple).
Cada triángulo representa un amplificador. Como vemos hay 4
amplificadores, numerados del 1 al 4, los cuales están relacionados de
dos en dos: el 1 con el 2, y el 3 con el 4.
Las entradas se distinguen por la letra A, y las salidas con la letra Y.
Por tanto, hay 4 entradas: 1A, 2A, 3A y 4A y las respectivas salidas
1Y, 2Y, 3Y y 4Y.
En el diagrama se indica, con los números interiores, a qué patilla del
microchip corresponde cada entrada o salida.
Hay una conexión denominada ENABLE, que afecta a los amplificadores 1 y
2 y otra que afecta a los 3 y 4.
ENABLE significa "permitir" o "activar". Estas conexiones (1,2EN y
3,4EN) permiten que los amplificadores funcionen o no. Es decir,
activan o desactivan los amplificadores. También pueden activarlos "a
medias" como ya veremos. En definitiva, ENABLE permite que pase más
o menos corriente por el amplificador.
Para que un amplificador esté activo, la patilla ENABLE
correspondiente debe estar conectada al voltaje de la pila (5V en
nuestro caso). Si se conecta a 0V (o GND), los amplificadores a los que
afecta estarán completamente desactivados.
IMPORTANTE: si una patilla ENABLE se deja "al aire"
,
es decir, si no se conecta a nada (ni a 0V ni a 5V), resulta que,
debido a la construcción interna del circuito, mantiene un valor de
tensión alto (de 5V), con lo cual todos los amplificadores
estarán activados. Esta será la opción que nosotros usaremos en
principio para simplificar el circuito: Todas las patillas ENABLE
sin conectar.
|

|
El diagrama de abajo
presenta la misma
información de bloques pero ordenada tal y como se presenta en el
microchip.
Vemos que aparecen varias patillas denominadas GND. Se trata de la
masa, toma de tierra o punto de 0V del circuito integrado. No es
necesario conectarlas todas. Basta con usar una de ellas pues
internamente están unidas.
También hay dos tomas de tensión continua: Vcc1 y Vcc2.
- Vcc1 es la tensión que
necesita el circuito
integrado para funcionar, y en nuestro caso serán 5V que
obtendremos de la placa de Arduino.
- Vcc2 es la tensión que
se usará para que
funcionen los motores y no tiene por qué coincidir con Vcc1. Nosotros
usaremos una batería aparte que proporcione 9V a los motores. OJO:
Nunca se debe usar la conexión de Arduino
porque no tiene potencia suficiente y podría dañarse.
|
DIFERENCIA ENTRE EL L293D Y EL
L293
|
En los
siguientes esquemas se observa 3 modos distintos de conectar motores a
los integrados L293 y L293D.
Las patillas de ambos circuitos son equivalentes. La única diferencia
está en que, en el L293 es
necesario añadir exteriormente unos diodos
que protejan al circuito de posibles picos de tensión elevada
producidos por los motores.
Como se ve en el diagrama, en el L293D
estos diodos están ya
incluidos internamente en el
circuito integrado, por lo que no es necesario añadirlos y el montaje
resulta más simple.
Por ello, dada la escasa diferencia de precio, es siempre preferible
usar el L293D.
|
 |

|
MODOS DE CONEXIÓN
DEL L293D
Por último,
observa el siguiente
montaje en el que aparecen los tres modos de conexión de un motor al
circuito L293D. Los analizaremos con detalle en el momento de las
prácticas.
Sin embargo conviene resaltar aquí algunas cosas:
- Son necesarias dos pilas:
- Vcc1
es la tensión que
necesita el circuito
L293D para funcionar. Usaremos 5V que podemos obtener de la
placa de Arduino.
- Vcc2
es la tensión que los
motores usan. En
nuestro caso, una pila externa de 9V será la que proporcione la
energía necesaria a los motores.
- En
varias patillas aparecen indicaciones de tensión en forma de pulsos de
nivel alto "1" o bajo "0". Se trata de las entradas del circuito, que
producen distintos efectos. El valor 0 o 1 es una denominación del tipo
binario y realmente corresponde a:
- "1":
nivel alto. Se
llama así cuando se
aplica 5V a esa entrada
- "0":
nivel bajo. Es
cuando se aplica 0V.
- Las patillas 1 y 9 son
las llamadas ENABLE
(EN).
Sirven para activar los amplificadores. Aunque en principio es
necesaria una tensión de 5V (nivel alto o "1") para activar un
amplificador, en la práctica, se puede observar que si la patilla EN
se deja sin conectar el resultado es el mismo que si estuviera a nivel
alto. Por tanto, para simplificar el circuito, no las conectaremos,
a no ser que se quieran utilizar para no permitir el paso de corriente
(en todo o en parte).
- Por último, es importante
indicar que todos los
componentes que usemos en el crcuito deben conectarse a un punto de GND común, es
decir, a la misma toma de tierra o masa:
- La placa de Arduino
- el L293D
- El polo negativo de las
pilas utilizadas
- y el polo negativo del motor
en la conexión
Directa.
Como el L293D tiene varias tomas de GND, que internamente están
conectadas, pueden usarse para centralizar todas las tomas de tierra.
En el esquema siguiente aparece un ejemplo con todas estas conexiones
mínimas necesarias entre la Placa de
Arduino, el L293D
y un motor conectado en forma Directa. Esta será nuestra
primera práctica.
|

|

|
4. 6. MOTOR DE CONTINUA (DC)
(Ejercicios):
- 4.6.A. Monta el siguiente
circuito con un MOTOR DC conectado de FORMA DIRECTA:
Antes de conectar el motor debes comprobar cuáles son sus polos + y -
conectándolos directamente a la pila de 9V y comprobando en qué caso
gira en sentido Horario.
- 4.6.B. Añade al circuito
anterior un LED Verde en paralelo con una resistencia de 220
Ohmios. El LED se conecta justo en la Salida Digital D2
de Arduino o, lo que es lo mismo (ya que están conectadas), en la entrada
"In 1" (1A) del L293D.
Con esto conseguimos que cada vez que la salida D2 proporcione un pulso
de nivel alto, se encienda el LED. Puedes ver el esquema del circuito
en el recuadro siguiente:
4.6.B. MOTOR DC EN FORMA DIRECTA con un LED de
Control
|
Esquema: |

Nota: el LED con la Resistencia y el Motor se
podían haber
conectado de otra forma para que no fuera necesario cruzar por encima
de los otros cables. Se ha hecho así para que en los siguientes
ejercicios se pueda usar este mismo montaje sin hacer muchos cambios.
De todas formas prueba tú a hacer otro esquema en el que no sea
necesario este cruce.
|
Proto-Board: |

|
Instrucciones: |
- Completa este circuito y prueba
el
programa, que es el mismo que en el ejercicio anterior.
- El motor y el LED deben
activarse a la vez, en pulsos de 1/2 segundo de duración.
- El motor debe funcionar en
sentido Horario.
|
- 4.6.C. Con pequeñas
variaciones sobre el
montaje anterior, vamos a conectar el MOTOR DC de forma INVERSA:
- Desconecta la patilla del motor
de la toma GND.
- Conecta esa patilla del
motor al polo positivo de la Pila de 9V que alimenta a los
motores, es decir, al punto Vcc (MOTORES)
- El programa no cambia.
- Se mantiene el LED Verde con
su resistencia limitadora de 220 Ohmios
4.6.C. MOTOR DC EN FORMA INVERSA con un LED de
Control
|
Esquema: |

|
Proto-Board: |

|
Instrucciones: |
- Completa este circuito. El
programa es el mismo que en los ejercicios anteriores.
- ¿Gira el motor mientras se
enciende el LED?
- Cuando el motor está girando
¿Está el LED encendido o apagado?
- El motor debe girar en sentido Antihorario.
¿Por qué crees que pasa eso?
|
- 4.6.D. MOTOR
DC EN FORMA INVERSA sin LED de Control
Si te resulta más fácil, antes de hacer el circuito
anterior, monta primero este circuito sin LED: |
|

|
4.6.D. MOTOR DC EN FORMA INVERSA sin LED de Control
|
Esquema: |

|
Proto-Board: |

|
Instrucciones: |
- Usa el mismo programa que en
todos los ejercicios 4.6 anteriores
- Sólo debería cambiarse la
patilla del motor que antes iba conectada a GND, uniéndola ahora a Vcc
(MOTORES).
- De esta
forma, el motor debe
girar en sentido Antihorario.
|
- 4.6.E. MOTOR DC conectado en
modo PUSH-PULL. Esta forma de conexión tiene las siguientes
características:
MOTOR DC en modo PUSH-PULL
|
- Se llama "push-pull",
que significa "empuja-tira" o en español diríamos mejor "tira-afloja".
- Necesitamos usar 2
amplificadores del L293D.
- Cada polo del motor se conecta
a cada uno de los amplificadores (a las salidas)
- En cada momento,
uno de los amplificadores está activo y el otro inactivo, con lo cual,
unas veces está a nivel alto ("1") un extremo mientras el otro
está a nivel bajo ("0"). En otras ocasiones están al contrario.
Por eso
se llama push-pull.
- La corriente, por tanto,
circulará unas veces en un sentido y otras veces en otro.
- En consecuencia, el motor
girará unas veces en sentido horario y otras en sentido
antihorario.
|

|
- Hay que tener en cuenta que, si
ambos amplificadores están a nivel bajo ("0") el motor no se
moverá.
- Y además, si ambos
amplificadores están a nivel alto ("1"), el motor tampoco se moverá.
- Es decir, si ambos "empujan" o
ambos "tiran" el motor queda parado. Para que se mueva, deben actuar de
forma contraria.
AMPLIFICADORES |
MOTOR
|
1 |
2
|
0
|
0
|
PARO
|
1
|
0
|
HORARIO
|
0
|
1
|
ANTIHORARIO
|
1
|
1
|
PARO
|
|

|
Este sería el
esquema del motor en modo Push-Pull con un L293D conectado a Arduino:
|
4.6.E. MOTOR DC EN
PUSH-PULL
|
Esquema: |

|
Programa: |

Trata de entender el programa por tí mismo
|
Proto-Board: |

|
Instrucciones: |
- Monta el circuito y carga el
programa.
- Prueba el funcionamiento del
circuito.
- Comprueba
que el motor gira
alternativamente en sentido Horario y Antihorario.
|
- 4.6.F.
MOTOR DC en PUSH-PULL con
LEDs de control.
Añade al circuito anterior dos LEDs de colores distintos (con su
resistencia limitadora incluida) para verificar cuándo el motor gira en
sentido horario/antihorario. Recuerda que las resistencias deben ser de
220 Ohmios. El programa es el mismo anterior.
4.6.F. MOTOR DC EN PUSH-PULL con LEDs de control
|
Esquema: |

|
Proto-Board: |

|
Instrucciones: |
- Monta el circuito y carga el
programa.
- Prueba el funcionamiento del
circuito.
- Comprueba que cuando:
- El LED Verde está
encendido, el motor gira en sentido Horario.
- El
LED
Rojo está encendido, el motor gira en
sentido Antihorario.
|
- 4.6.G. MOTOR DC en PUSH-PULL.
Cambio de ciclo I. Modifica el programa anterior para que el motor
haga lo siguiente:
- Debe girar 1/2 segundo en
sentido Horario.
- Estará parado 1 segundo.
- A continuación girará 1/2
segundo en sentido Antihorario.
- Finalmente, estará parado 1
segundo.
- El ciclo se
|