Práctica 5: Control de giro de un motor DC en S4A

Page 1

Práctica 5: Control de un motor DC

2015

Práctica 5: Control de un motor de continua a través del L295 1. Objetivo El objetivo de esta práctica es controlar el cambio de giro de un motor de continua con S4A. Lo conseguiremos no a través de un transistor, si no que usaremos el circuito integrado L293D Los dos terminales del motor de continua se conectarán a los pines de salida digitales pin 10 y pin 11 de la placa arduino (patillas 11 y 14 del L293 D), así como una resistencia y un pulsador que se conectará al pin 2 (entrada digital). 2. Montaje eléctrico Los componentes electrónicos que requiere el montaje eléctrico son los siguientes: 1 motor de continua, 1 circuito integrado L293D y una batería de 9V. Motor de continua (DC) Un motor de corriente continua es un dispositivo que convierte la energía eléctrica en mecánica. Se compone de dos partes, el estator y el rotor, siendo el estator la parte mecánica del motor, donde están los polos del imán, y el rotor la parte móvil del motor con devanado y un núcleo, al que llega la corriente a través de las escobillas. Cuando la corriente eléctrica circula por el devanado del rotor, se crea un campo electromagnético que interactúa con el campo magnético del imán del estator. Esto deriva en un rechazo entre los polos del imán del estator y del rotor creando un par de fuerza donde el rotor gira en un sentido de forma permanente. Por lo tanto, para cambiar el sentido de giro del rotor tenemos que cambiar el sentido de la Susana Oubiña Falcón

Página 1 de 16


Práctica 5: Control de un motor DC

2015

corriente que le proporcionamos al rotor; y eso se consigue invirtiendo la polaridad de la pila o batería. Su símbolo eléctrico es el siguiente:

Físicamente, presenta dos patillas que se conectan a tierra y a la fuente de tensión:

Motor de DC físico

Circuito integrado L293 D Una de las opciones para controlar un motor DC desde Arduino es utilizar un driver para motores. De ese modo logramos proporcionarle más corriente al motor ya que las salidas del Arduino sólo dan 40mA. También, con el driver podemos alimentar el motor con una fuente de alimentación externa. El L293D es un integrado para controlar motores DC y se basa en el sistema puente en H. ¿Qué es el puente en H? Es un sistema para controlar el sentido Susana Oubiña Falcón

Página 2 de 16


Práctica 5: Control de un motor DC

2015

de giro de un motor DC usando cuatro transistores que se comportan como interruptores abiertos o cerrados dos a dos. En la siguiente imagen observamos que si conducen los transistores Q1 y Q4 (Q2 y Q3 no lo hacen) el motor gira hacia un sentido (por ejemplo derecha), pero si ocurre lo contrario y conducen Q2 y Q3 (no lo harían Q1 y Q4) y el motor giraría en el sentido contrario.

Susana Oubiña Falcón

Página 3 de 16


Práctica 5: Control de un motor DC

2015

Puente en H

Susana Oubiña Falcón

Página 4 de 16


Práctica 5: Control de un motor DC

2015

El L293D tiene dos puentes H y proporciona 600mA al motor y soporta un voltaje entre 4,5V y 36V. El símbolo eléctrico del L293D, que incluye 4 medios puentes, es el siguiente:

En la imagen anterior se observa que las patillas EN (número 1 y 9) se deben conectar en alta (H). En nuestro caso, conectamos la patilla 9 al pin digital 2 de la placa Arduino. Además, las patillas A son las que controlan los motores. En nuestro caso, usaremos las patillas 10 y 15 del integrado para conectarlas a los pines 11 y 10 de la plana arduino. La programación de los pines 11 y 10 nos darán los giros del motor hacia la derecha o izquierda. En la figura anterior también observamos cómo se puede parar el motor: basta con poner los pines 11 y 10 los dos en alta o los dos en baja. Físicamente, el L293D presenta 16 patillas, tal y como se observa en la siguiente imagen:

Susana Oubiña Falcón

Página 5 de 16


Práctica 5: Control de un motor DC

2015

El pequeño circuito eléctrico que vamos a implementar para controlar el sentido de giro de un motor, a través del integrado L293D, puede verse en las sucesivas imágenes:

Circuito de prueba. Susana Oubiña Falcón (CC-BY)

Susana Oubiña Falcón

Página 6 de 16


Práctica 5: Control de un motor DC

2015

Esquema en la placa protoboard. Susana Oubiña Falcón (CC-BY)

Esquema eléctrico. Susana Oubiña Falcón (CC-BY)

Susana Oubiña Falcón

Página 7 de 16


Práctica 5: Control de un motor DC

2015

3. Objetos en el entorno S4A El programa requiere de un único objeto arduino que representa el motor. A mayores, en nuestro caso, he introducido un objeto “Instructor” (adivino de la lámpara mágica) que es el que indica las instrucciones que deben seguir los usuarios del programa para interactuar con él y con el motor físico y un último objeto “Texto” que muestra el título de esta práctica. La siguiente figura muestra el objeto motor en uno de sus disfraces:

Objeto Arduino “Motor”. Susana Oubiña Falcón (CC-BY)

Ambos objetos, “Instructor” y “Texto”, pueden verse en la siguiente imagen del escenario de la práctica en el entorno S4A:

Susana Oubiña Falcón

Página 8 de 16


Práctica 5: Control de un motor DC

2015

Escenario de la práctica al inicio. Susana Oubiña Falcón (CC-BY)

La figura anterior muestra una información importante. Cuando hablé del integrado L293D comenté que disponía de unas patillas que llamaban EN (enable) y de debían estar a nivel alto. Como en esta práctica sólo se controla un motor (ambos giros), no he necesitado utilizar las dos patillas EN del integrado, peri si una que se corresponde con la patilla 9 del L293D y que conecté al pin digital 2 de la placa arduino. La información que nos muestra la imagen anterior (ver flecha indicativa) es que el pin Digital2 está en “true” (verdadero o activo) que es justamente lo que se necesita para que al programar los otros pines que activan el movimiento del motor, estos realmente

Susana Oubiña Falcón

Página 9 de 16


Práctica 5: Control de un motor DC

2015

funcionen en la forma deseada. Si estuviera en “false” (falso) el motor siempre estaría parado.

4. Programación en el entorno S4A.

Por lo tanto, el objeto importante a programar es el objeto arduino, el motor, el cual dispone de 46 disfraces: unos se usarán cuando esté girando hacia la derecha y otros cuando gire hacia la izquierda. He decidido introducir tantos disfraces porque, de este modo, me resultaba más cómodo programarlo. Por supuesto, hay multitud de opciones que evitan el incluir tantos disfraces en un único objeto. En nuestro caso, los primeros 24 disfraces muestran el giro del motor a la izquierda y los restantes (hasta el disfraz 46) simulan el giro hacia la derecha. En el motor, debemos programar ambos giros y la parada del motor. Para seguir el orden de ejecución del programa, prefiero comenzar a explicar los otros dos objetos que he utilizado y que dan paso al objeto realmente importante de este proyecto: el motor. Al pulsar la bandera verde, sólo actúan los objetos “Instructor” y “Texto”. Los dos se activan a la vez. La función del objeto “Texto” es mostrar el título del proyecto. Título que desaparecerá cuando el programa de paso al objeto arduino, lo cual ocurrirá cuando el objeto “Instructor” envíe el mensaje “Elige”. Por lo tanto, el script del objeto “Texto” es muy simple y es el siguiente:

Programa de nuestro objeto “Texto”. Susana Oubiña Falcón (CC-BY)

Susana Oubiña Falcón

Página 10 de 16


Práctica 5: Control de un motor DC

2015

La función del objeto “Instructor” es explicarle al usuario cómo puede interactuar con el programa y dar paso a la elección de giro que quiere que haga no sólo el motor físico real, sino también el motor que hemos diseñado en scratch. En nuestro caso, dispone de 6 disfraces que se ejecutan al inicio, antes de mostrar las instrucciones. El programa dispone de una variable “Giro” que nos mostrará mediante letra en el escenario el giro que está realizando el motor: derecha, izquierda o parada. Es una variable muy útil pero que no deseo que se muestre al inicio del programa. Su funcionalidad o utilidad la activa el motor y, por esta razón, la escondo al inicio del programa, para más tarde mostrarla. Como puede observarse en la siguiente imagen que muestra el script del objeto “Instructor”, lo que hago inicialmente es esconder la variable “Giro”, situando el objeto en un lugar concreto del escenario y haciendo correr sus disfraces partiendo del primero (sólo dispone de 6 disfraces por lo que debo hacer un bucle de 5 repeticiones). A continuación es cuando ejecuta realmente su función, dejando claro al usuario que para interactuar con el programa sólo debe escoger los giros utilizando las flechas derecha o izquierda y, para que se pare el motor, elegir la tecla espacio. Finalmente, da paso a la ejecución del script del motor usando el comando que envía a todos el mensaje “Elige”. En ese momento, el objeto “Instructor” debe esconderse. Por lo tanto, debemos incluir en su script que, cuando reciba el mensaje “Elige”, se esconda:

Susana Oubiña Falcón

Página 11 de 16


Práctica 5: Control de un motor DC

2015

Programa de nuestro objeto “Instructor”. Susana Oubiña Falcón (CC-BY)

Sólo nos resta explicar el script del objeto arduino, el motor. Al pulsar la bandera verde, este no se muestra (se encuentra escondido) y sólo comienza a visionarse al recibir el mensaje “Elige” que le ha enviado el objeto “Instructor”, situándolo y dejando que se vea en el punto (0,0) del escenario. En ese momento, se muestra la variable “Giro”, pero se entiende que, por ahora, mientras el usuario no interactúe con las teclas flecha derecha o izquierda y espacio, el motor debe estar parado, y por eso muestra y se fija la variable de giro como “Parada”. Esto se observa en la siguiente imagen:

Susana Oubiña Falcón

Página 12 de 16


Práctica 5: Control de un motor DC

2015

Escenario de la práctica en el objeto arduino antes de ejecutar la elección del giro del motor.

Susana Oubiña Falcón (CC-BY)

A continuación, en un bucle “por siempre” comenzamos a programar las tres posibilidades de elección. El usuario puede desear que el motor gire hacia la derecha, o hacia la izquierda o que continúe parado. Tras pulsar la tecla correspondiente a la elección deseada, he decidido que el programa espere un segundo y que envíe el mensaje correspondiente: Izquierda (girará hacia la izquierda), Derecha (girará hacia la derecha) o Parada (parará el motor). Toda esta explicación se programa en el objeto arduino como muestra la siguiente imagen:

Susana Oubiña Falcón

Página 13 de 16


Práctica 5: Control de un motor DC

2015

1º parte del script de nuestro objeto arduino. Susana Oubiña Falcón (CC-BY)

Susana Oubiña Falcón

Página 14 de 16


Práctica 5: Control de un motor DC

2015

Sólo nos resta programar como se ejecutará cada uno de los mensajes enviados: Izquierda, Derecha y Parada. Esta 2º parte del script del objeto arduino motor puede verse en la siguiente imagen:

2º parte del script de nuestro objeto arduino. Susana Oubiña Falcón (CC-BY)

En la imagen anterior se observa que he incluido una variable que llamo “orden”. Esta variable, simplemente, se ha creado para que los disfraces del motor, en cada elección, se vean en la secuencia deseada simulando, de esa forma, el movimiento del motor en el escenario scratch hacia el lado correspondiente. Los disfraces que muestran el giro del motor a la izquierda son del 1 al 24. Por eso, cuando se encuentre con el disfraz número 25, este no puede verse y debe saltar la secuencia al número 1, y así continuamente mientras esté girando hacia la izquierda. Esto se consigue con el bucle “por siempre si…”. Lo mismo ocurre en el sentido de giro hacia la derecha, siendo los disfraces utilizados aquí desde el número 24 al 45. Susana Oubiña Falcón

Página 15 de 16


Práctica 5: Control de un motor DC

2015

Para que ambos giros los reconozca el motor, deben programarse los pines 10 y 11 de la placa arduino. Tras una prueba inicial (recordar que, por ser un motor de continua no hay una polaridad específica en sus dos terminales), nos encontramos con que si encendemos el pin 10 (manteniendo apagado el pin 11) el motor gira hacia la derecha y si encendemos el pin 11 (manteniendo apagado el pin 10) el motor gira hacia la izquierda. En cuanto a la parada del motor, he decidido hacerlo con los dos pins (10 y 11) apagados. El mismo efecto sería si pongo ambos encendidos.

5. Vídeo demostrativo del funcionamiento de la práctica Los vídeos que muestran el funcionamiento de la práctica “Control de giro de un motor DC” se visionan en los siguientes links: Funcionamiento físico del motor en la placa protoboard: https://vimeo.com/120261913 Funcionamiento o simulación del programa en el entorno S4A: https://vimeo.com/120262069

“Control de giro de un motor DC con L293D” en S4A. Susana Oubiña Falcón (CC-BY)

Susana Oubiña Falcón

Página 16 de 16


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.