Вы находитесь на странице: 1из 5

Kurtso/Curso:

Ikasgaia/Tema:

Bachillerato 2
Microcontroladores

Ikasgaia/Asignatura:
Dokumentua/Documento:

DAO
Ficha 07 Motores

Ficha 07 Motores
Introduccin
En esta ficha vamos a utilizar motores de corriente continua. Existen diferentes modos de conectar motores a un circuito,
nosotros utilizaremos para ello el H-Bridge L293D del Arduino Starker Kit.
Un H-Bridge es un circuito integrado que permite controlar el sentido de giro y la potencia de un motor de corriente
continua. Este driver en concreto nos permite conectar y controlar 2 motores de manera independiente. Es importante saber
que, generalmente, los motores necesitan una fuente de alimentacin propia, ya que muchas veces pueden trabajar con
voltajes diferentes a la placa Arduino. En nuestro caso, vamos a utilizar una pila de 9V para alimentar el motor.
Es muy importante mantener el voltaje del circuito del motor separado del voltaje de la placa Arduino, ya que si no,
podramos quemar alguno de sus componentes. El driver se encargar de ello, pero hay que fijarse correctamente dnde se
conecta cada cable.
El esquema de conexin de un driver a una placa Arduino es el siguiente:

Visto como una fotografa:

Orrialde/pgina: 1/5

C/Iturribide, 78 C.P. 48006 - Bilbao - Tlfn. 94.432.91.00


www.maristasbilbao.com | elsalvador@maristasbilbao.com

Kurtso/Curso:
Ikasgaia/Tema:

Bachillerato 2
Microcontroladores

Ikasgaia/Asignatura:
Dokumentua/Documento:

DAO
Ficha 07 Motores

El driver tiene 8 pines a cada lado. Estando la muesca en la parte superior del mismo, visto desde arriba, se numeran del
siguiente modo:

Lateral izquierdo (cuidado: de arriba hacia abajo):


o 1: control de potencia del motor 1
o 2: control de giro del motor 1 en sentido horario
o 3: negativo del motor 1
o 4: tierra
o 5: tierra
o 6: positivo del motor 1
o 7: control de giro del motor 1 en sentido antihorario
o 8: alimentacin de los motores (en nuestro caso, 9V)
Lateral derecho (cuidado: de abajo hacia arriba). Exceptuando el pin 9, todo lo dems es igual al lateral izquierdo,
pero teniendo en cuenta que ahora contamos de abajo hacia arriba (por lo que los veramos invertidos):
o 9: control de potencia del motor 2
o 10: control de giro del motor 2 en sentido horario
o 11: negativo del motor 2
o 12: tierra
o 13: tierra
o 14: positivo del motor 2
o 15: control de giro del motor 2 en sentido antihorario
o 16: alimentacin del H-Bridge (en nuestro caso, 5V)

Control de un motor
Controlar un motor con un H-Bridge es muy sencillo:

El pin de control de potencia permite controlar la velocidad de giro. 0V indica que est quieto, y 5V que se mueve a
su mxima velocidad posible. Valores intermedios nos proporcionarn velocidades intermedias, con lo que
podemos usar las salidas analgicas (PWM, marcadas con ~) de Arduino para controlar la velocidad de giro.

Orrialde/pgina: 2/5

C/Iturribide, 78 C.P. 48006 - Bilbao - Tlfn. 94.432.91.00


www.maristasbilbao.com | elsalvador@maristasbilbao.com

Kurtso/Curso:
Ikasgaia/Tema:

Bachillerato 2
Microcontroladores

Ikasgaia/Asignatura:
Dokumentua/Documento:

DAO
Ficha 07 Motores

Para hacer que el motor gire en sentido horario, es necesario enviar 5V (HIGH) al pin de giro en sentido horario, y 0V
(LOW) al pin de giro en sentido antihorario,
En caso opuesto, para hacer que gire en sentido antihorario, es necesario enviar 0V (LOW) al pin de giro en sentido
horario, y 5V (HIGH) al pin de giro en sentido antihorario.

Vamos a realizar un ejercicio que haga lo siguiente:

El motor comenzar a girar en sentido horario, primero muy despacio, hasta alcanzar su velocidad mxima en 2,55
segundos.
Disminuir su velocidad de nuevo durante otros 2,55 segundos hasta pararse.
Comenzar a girar en sentido antihorario, aumentando su velocidad durante 2,55 segundos.
Disminuir su velocidad hasta parar (2,55 segundos).
Volver a comenzar.

Para realizar este ejercicio, completa el siguiente cdigo:


const int pinSH = ???; // Pin para el sentido horario
const int pinSA = ???; // Pin para el sentido antihorario
const int pinPOT = ???; // Pin para la potencia
// Potencia actual del motor
int potencia = 0;
// El sentido de giro es horario
boolean sentidoHorario = true;
// Se est aumentando la potencia
boolean aumentando = true;
void setup()
{
// Todos los pines que van a utilizarse son salidas.
...
...
...
/* Utiliza "digitalWrite" para poner el motor
inicialmente en estado de giro horario */
...
...
}
/*
Crea aqu una funcin que nos permita conocer el tiempo transcurrido desde la ltima vez
que se cambi el estado del motor. Declara en la parte superior las variables que
necesites.
*/
int tiempoTranscurrido...
void cambiarEstado()
{
// Si se est aumentando la potencia
if (...)
{
// Incrementa la potencia en uno
...
// Enva la nueva potencia al motor
...
// Si la potencia es la mxima (255)
if (...)
{
// Ya no aumentamos.
...
}
}
else
{
// Disminuye la potencia en 1
...
// Enva la nueva potencia al motor
...

Orrialde/pgina: 3/5

C/Iturribide, 78 C.P. 48006 - Bilbao - Tlfn. 94.432.91.00


www.maristasbilbao.com | elsalvador@maristasbilbao.com

Kurtso/Curso:
Ikasgaia/Tema:

Bachillerato 2
Microcontroladores

Ikasgaia/Asignatura:
Dokumentua/Documento:

DAO
Ficha 07 Motores

// Si la potencia es mnima (0)


if (...)
{
// Volvemos a aumentar
...
// Si el sentido era horario
if (...)
{
// Ahora el sentido es antihorario
...
// Usa digitalWrite para poner el motor en sentido antihorario
digitalWrite(...);
digitalWrite(...);
}
else
{
// Ahora el sentido es horario
...
// Usa digitalWrite para poner el motor en sentido horario
digitalWrite(...);
digitalWrite(...);
}
}
}
// Actualiza el tiempo del ltimo cambio
...
}
void loop()
{
// Si han pasado ms de 10 ms
if (tiempoTranscurrido() > 10)
{
// Cambia el estado del motor
cambiarEstado();
}
}

Ejercicio 1: monta el circuito y completa el cdigo del programa para que realice la funcionalidad descrita.
Ejercicio 2: aade un segundo motor que haga lo mismo, pero que tarde el doble en realizar el cambio de sentido. Usa para
ello los pines 5, 6 y 7 de Arduino. Tienes un vdeo de cmo debera funcionar en http://youtu.be/boGxT6oX2t4. Al final del
vdeo puedes ver cmo se puede alimentar la placa Arduino sin necesidad de tenerla conectada al puerto USB, con una
pila de 9V.

Reaccionando a estmulos
Vamos a terminar con un ejercicio con un montaje un poco ms complejo, pero con un cdigo muy sencillo. En este ejercicio
se van a utilizar:

Dos motores (a ser posible, iguales)


Dos pulsadores
Dos LEDs

El programa debe hacer lo siguiente:


1.
2.
3.
4.

Inicializar las entradas y salidas


Inicializar el giro de uno de los motores en sentido horario, y el del otro, en sentido antihorario.
Cada pulsador controla la velocidad de giro de uno de los motores: si el pulsador del motor no est pulsado, ste
gira a un 20% de su velocidad; si est pulsado, al 100%.
Adems, si est girando rpido, el LED correspondiente a ese motor se enciende.

En http://youtu.be/wR0kngAmv_E puedes ver un vdeo con una muestra de lo que el programa debe realizar.

Orrialde/pgina: 4/5

C/Iturribide, 78 C.P. 48006 - Bilbao - Tlfn. 94.432.91.00


www.maristasbilbao.com | elsalvador@maristasbilbao.com

Kurtso/Curso:
Ikasgaia/Tema:

Bachillerato 2
Microcontroladores

Ikasgaia/Asignatura:
Dokumentua/Documento:

DAO
Ficha 07 Motores

Controlando la potencia de los motores


Vamos a juntar varios de los elementos vistos a lo largo de las fichas. La idea es la siguiente, partiendo del mismo montaje del
ejercicio anterior:

Los motores estarn inicialmente apagados, pero configurados para girar uno en sentido horario, y otro, en sentido
antihorario.
Al detectar la pulsacin de un pulsador, la velocidad del correspondiente motor se incrementa (tenemos 5
velocidades, siendo 0 parado, y 4 mxima velocidad). Si pulsamos estando en mxima velocidad, la velocidad
empieza a decrementarse, hasta llegar a 0, con lo que se volvera a empezar.
Los LEDs harn lo siguiente: si el motor est apagado, su correspondiente LED tambin lo estar; si el motor est a
velocidad mxima, su correspondiente LED estar encendido; para velocidades intermedias (1, 2 y 3), el
correspondiente LED parpadear 2, 4 o 6 veces por segundo.

Aqu tienes un vdeo: http://youtu.be/3dtt3bU20Ag


Ejercicio: Si has llegado hasta aqu, el resto es cosa tuya!

Orrialde/pgina: 5/5

C/Iturribide, 78 C.P. 48006 - Bilbao - Tlfn. 94.432.91.00


www.maristasbilbao.com | elsalvador@maristasbilbao.com

Вам также может понравиться