Está en la página 1de 12

ITSSAT INSTRUMENTACIÓN

Control Motor de CC Velocidad y Sentido

Controlar un pequeño motor de cc. haciendo uso del puente de potencia integrado en el CI
L293D. (Posee una estructura que permite conectar hasta dos motores al mismo tiempo).

Figura 1. Circuito integrado LM293D

Figura 2. Funcionamiento del Motor 1

Para configurar motor DC de 6 V a 12 V


Materiales:
Motor 6 V a 12 V
Circuito integrado LM293D
Protoboard
Cables conectores
Resistencias
Tarjeta Arduino (Uno, Mega 2560)
Configuración de software Labview para interfaz con Arduino. (Drivers,Toolkits, etc.)

1
BLANCA RIOS A.
ITSSAT INSTRUMENTACIÓN

Configuración del software El VI Package Manager desde Labview hace una búsqueda de toolkits
que permiten trabajar haciendo interfaces, Raspberry, Arduino, Daq, otras conexiones o canales de
conversación o recepción de datos.

Colocamos en el Search de VI Package, la palabra Arduino, para que realice la búsqueda y muestre
los toolkits compatibles con labview y tarjeta Arduino. Hice descargas para mi versión: Labview 2016
(64bits).

Los que debo tener son:

Arduino Compatible Compiler for LabVIEW Home/Student-1.0.0.21 (Listo)

Arduino Compatible Compiler for LabVIEW Standard-1.0.0.21 (Listo)

LabVIEW Interface for Arduino-2.2.0.79 (Listo)

A continuación, estos toolkits me permitirán realizar la configuración de manera que pueda abrir las
ventanas de trabajo (Panel frontal y Diagrama de bloques) con la ayuda de LINX, permite configurar
para Arduino y otras tarjetas de manera más amigable sin tener que preparar a Arduino con un
programa como LIFA_Base.ino que a mi parecer es más engorroso. Una vez instalado LINX
procederá a configurar puertos donde se localiza la tarjeta en cuestión, selección del modelo de
tarjeta (Arduino Mega en mi caso). MakerHub aparece en el menú de Functions palette, permite
realizar la programación, sólo hay que adaptar los bloques que inicializan el programa puesto que
se utilizan bloques de LINX. Desde mi punto de vista más amigable, ver figura 3.

2
BLANCA RIOS A.
ITSSAT INSTRUMENTACIÓN

Figura 3. Uso de Toolkit LINX, interfaz amigable para programar hacia Arduino.

Iniciamos el software Labview. Recuerden que la versión que utilicen es la que permitirá
ejecutar posteriormente el archivo .vi generado y versiones posteriores.
Al abrir la ventana de Labview seleccionamos crear Project →Blank VI que abrirá dos
ventanas: una es el panel frontal y la otra una hoja en blanco donde iniciaremos colocando
nuestros bloques de programación. Seleccionamos Finalizar (Finish).
Nos colocamos en la hoja en blanco que corresponde a la ventana Diagrama de bloques,
que en caso de que el programa no lo muestre, nos dirigimos a la barra de tareas del panel
frontal, seleccionamos Windows y al desplegar el menú seleccionamos Windows → Show
Diagram Ver fig. 4..

Figura 4. Selección para mostrar la ventana de trabajo Diagrama de boques.

3
BLANCA RIOS A.
ITSSAT INSTRUMENTACIÓN

Iniciamos seleccionando en la ventana de trabajo con bloques, en la barra de tareas, la pestaña


View, seleccionamos Functions Palette y mostrará una nueva ventana con los bloques que se
requieren para programar. Figura 5.

Figura 5. Selección de la ventana que contienen los bloques funciones.

Continuamos en la misma pestaña. Si deseamos asegurarnos de forma rápida que el cursor tendrá
la función para selección mano o selección para escritura, modo conexión de elementos o alguna
otra tarea, seleccionamos en la misma pestaña View→Tools palette Ver figura 6.

Figura 6. Selección de la ventana Tools Palette.

Ahora iniciamos propiamente la programación, para ello en la ventana Functions palette


seleccionamos Programming→While loop (Figura 6) al dar click muestra una manita que nos indica

4
BLANCA RIOS A.
ITSSAT INSTRUMENTACIÓN

que podemos arrastrar la ventana hacia la hoja de trabajo (Figura 7). Estos bloques realizan la
función de un ciclo While común en programación, es decir, mantener repitiendo un bloque de
código mientras la proposición o condición sea verdadera.

Figura 7. Selección del bloque While, Loop

Figura 8. Colocar ciclo While seleccionando desde la ventana Functions Palette.

Posteriormente insertaremos un bloque Case donde más adelante configuraremos los pines de
salida que controlan el sentido de giro, así como la salida de PWM, ancho de pulso. Figura 9.

5
BLANCA RIOS A.
ITSSAT INSTRUMENTACIÓN

Figura 9. Inserción del bloque Case.

Iniciaremos las etapas de configuración del programa configurando los puertos, así como entradas
salidas de la tarjeta Arduino. Para ello nuevamente abrimos ventana Functions Palette y
seleccionamos del menú la pestaña Arduino, donde encontraremos un bloque Init, seleccionamos y

Figura 10. a) Ubicación de la pestaña Arduino y su contenido. b) Los bloques dentro del folder Low level.

colocamos en nuestra hoja de trabajo (Como se ve en la figura 9a). En la misma pestaña, localizamos
un folder que dice Low Level, seleccionamos y desplegará nuevos bloques que nos permitirán los
pines de entrada y salida (Ver Figura 10b).

De la ventana Low Level seleccionamos el bloque Set Digital Pin Mode, que nos permitirá configurar
los pines de Arduino como entradas o salidas, en este caso se configuran como Salida (Output),
Figura 11..

6
BLANCA RIOS A.
ITSSAT INSTRUMENTACIÓN

Figura 11. Selección del bloque Set Digital Pin Mode.

Para colocar bloques con características de pin de salida, del Panel frontal abrimos la ventana
Control →Modern →Arduino →PinMode, como se observa en la figura 11. También podemos
realizar la búsqueda si no ubicamos la pestaña que contiene el bloque que necesitamos, desde
Search → Pin Mode. Seleccionaremos el modo Output o Input según deseemos configurar el pin
de trabajo.

Para colocar el bloque que indica la tarjeta a usar, desde panel frontal damos click para abrir la
ventana Search → Board Type aparece en el menú y arrastramos hacia la ventana Diagram. Este
bloque Se emplea para seleccionar el modelo de la tarjeta Arduino que se va a utilizar, en nuestro
caso es Mega 2560.

Regresamos a Diagrama de Bloques, abrimos pestaña Mathematics, buscamos y seleccionamos un


bloque Constant, que arrastraremos hasta la hoja de trabajo. Ahí daremos click hasta poder
modificar el contenido y escribiremos los valores, en este caso 115200.

Figura 12. Selección del bloque PinMode desde Panel Frontal y la ventana Controls-Arduino.

7
BLANCA RIOS A.
ITSSAT INSTRUMENTACIÓN

Para iniciar la configuración del bloque del bloque I/O que permite configurar el puerto de conexión
del Arduino, nos colocamos en el Panel Frontal, desde ahí damos click derecho y del menú que
aparece (ventana de bloques) seleccionamos Control → Modern → Silver → I/O (folder) y dentro
seleccionamos Visa Resource Name, este bloque lo arrastramos hacia la hoja de trabajo
que mostrará

Demos un click dentro del bloque para configurar, escribimos COM3 por ejemplo y nos mostrará
dentro del mismo bloque una lista de los puertos hasta entonces habilitados. Seleccionaremos el
puerto donde se encuentre la tarjeta Arduino. Para ello podemos asegurarnos abriendo el Sketch
de Arduino (su ventana para programar) y en la pestaña correspondiente buscamos donde se
encuentra ubicado el puerto al que se conecta nuestro Arduino. También verificar el modelo de la
tarjeta Arduino con la cual se trabaja. Procedemos a conectar esta primera sección de bloques a
nuestro ciclo While Loop.

Dentro del cuadro que corresponde al ciclo While, colocaremos un control numérico. Colocamos el
cursor en panel frontal damos click derecho y abre ventana Controls, de la cual seleccionamos en el
menú Silver → Numeric →Knob (silver). Este selector de control se puede configurar en cuanto al
rango que deba presentar para la presentación de datos. Ver figura 12. El bloque Knob Silver va a
configurarse dando click derecho sobre él, elegir del menú Representation →I8 (característica del
dato que leerá). ¿Posteriormente, usamos la ventana Functions Palette para elegir la pestaña
Programming →Comparison→ Greater or equal to 0? ¿Es x mayor o igual que cero? De esta
forma condicionamos al selector de control que estará realizando la conmutación en la
estructura Case. Si es mayor o igual con cero regresa al caso True, de lo contrario irá al caso False.
Este bloque de comparación se conecta a la ventana de While Loop, al igual que desde el bloque
Knob (silver) se hace una conexión directa a la misma ventana While Loop, ver figura 13.

Figura 13. Colocar un control, tipo selector, desde ventana Controls, panel frontal.

Continuamos construyendo en labview desde la hoja Diagrama de bloques, donde seleccionamos


la pestaña Programming → Timing →Wait Until Next ms Multiple. Este bloque nos permite
realizar alguna acción, indicando el tiempo de ejecución mediante otro bloque (constante) hasta

8
BLANCA RIOS A.
ITSSAT INSTRUMENTACIÓN

que se le indique detenerse, en este caso, se conecta al Wait Until… un bloque constante de 200
ms Ver figura 14.

Figura 14. Selección del bloque Wait UNtil…

Colocaremos bajo la ventana de Estructura Case y dentro del While Loop dos bloques que serán mis
indicadores del sentido del giro del motor: Derecha o Izquierda. Seleccionamos desde Panel Frontal
la ventana Controls →Silver→Numeric→ Numeric Indicator (silver). Conectamos a la ventana de
Case y esos bloques los configuramos dando click en cada uno de ellos, elegir del menú
Representation y el modo U8. Quedarán así para el caso True y False. Cuando se haya completado
la configuración de las conexiones en ambos casos, entonces las uniones aparecerán
completamente coloreadas, ver figura 15.

Figura 15. Colocación de los bloques Numeric Indicator Silveren la ventana case.

9
BLANCA RIOS A.
ITSSAT INSTRUMENTACIÓN

Aprovechamos para colocar desde el Panel Frontal un botón de Stop. Elegimos


Silver→Boolean→Stop Button. La conexión es hacia el bloque en forma de círculo rojo.

Para terminar en la parte derecha de la ventana While Loop se colocan un bloque Arduino Write,

otro bloque Arduino Close conectando con un bloque Simple error handler , que
podemos localizar desde la ventana Search con ese nombre para identificar errores generados en
el proyecto realizado.

Ventana Estructura CASE

Ahora construyamos los casos True y posteriormente False de la ventana Case. Con las flechas de
avance de dicha ventana podemos seleccionar el caso que usaremos. Iniciamos con True. Para este
ejemplo indicaremos el sentido de giro del motor hacia la Izquierda. Usaremos bloques Arduino
Write, este se ubica en Functions Palette → Arduino → Low Level → Digital write pin. Para el
ejemplo de control de motor requiere 3 bloques, conectados entre sí como se observa en la figura
14. Agregamos bloques de constantes desde la ventana de Functions palette→ Numeric →Numeric
constant tantos como sean necesarios, puedo usar el comando copiar y pegar de un solo bloque. A
continuación, configuraremos esos bloques dando click derecho sobre ellos, eligiendo del menú la
opción Representation→U8 ; Veamos la figura 16.

10
BLANCA RIOS A.
ITSSAT INSTRUMENTACIÓN

Figura 16. Estructura Case True

Ahora nos colocamos en la ventana dentro del While loop, para seleccionar el caso False. Para este
modo se colocarán bloques de ventana Functions Palette→ Arduino→Low level →Digital Write
Pin. Los bloques y conexiones son similares que en el caso True, excepto que los bloques que
representan constantes se colocan en cada entrada de estos bloques, damos click para añadir el
número que deseamos y ahora el valor será de 7, 8, 11, 1 y 0 como se observa en la figura 17.

Figura 17. Estructura Case False.

11
BLANCA RIOS A.
ITSSAT INSTRUMENTACIÓN

Programa terminado, ver en la figura 18, que me permitirá controlar el sentido de giro de un motor
CD de 6 a 12 V empleando drivers L293D para protección y manipulación de giro del motor.

Figura 18. Programa para variar el sentido de giro del motor CD en Labview.

12
BLANCA RIOS A.

También podría gustarte