0% encontró este documento útil (0 votos)
51 vistas17 páginas

203037

El documento describe un algoritmo en LabView para simular diferentes tipos de energización de un motor paso a paso unipolar a través de LEDs. El algoritmo permite al usuario seleccionar el tipo de energización, la velocidad, dirección y resolución del motor. También genera números aleatorios para simular rotaciones aleatorias.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
51 vistas17 páginas

203037

El documento describe un algoritmo en LabView para simular diferentes tipos de energización de un motor paso a paso unipolar a través de LEDs. El algoritmo permite al usuario seleccionar el tipo de energización, la velocidad, dirección y resolución del motor. También genera números aleatorios para simular rotaciones aleatorias.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

UNIDAD 3 – PASO 4 – CONSTRUCCIÓN COLABORATIVA

Presentado a:
Juan Monroy

Tutor(a)

Entregado por:

Hernando Suarez
Código: 1038097001

Daniela Katerine Diaz


Código: 1.122.651.683

Jesus Esteban Montaña


Código: 1.193.109.256

Jhoan Sebastian Amaya


Código: 1.006.693.446

Bernando Salas
Código: 86088119

Grupo:203037_64
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
ESCUELA DE CIENCIAS BÁSICAS, INGENIERÍAS Y TECNOLOGÍAS
CURSO DE SOFTWARE AVANZADO PARA INGENIERIA
2020
INTRODUCCIÓN

En el siguiente trabajo colaborativo se encontrará un algoritmo elaborado en el software LabView para dar solución a un
problema planteado para simular a través de indicadores led unos tipos de energización aplicada a un motor paso a paso
unipolar. Al cual trabajara a la medida que un auto generador de grados le indique también se tiene la opción para que el
usuario pueda configurar la velocidad de giro para el motor, esta solución se platea basándonos en todos los
conocimientos adquiridos en el desarrollo de la clase tanto en la creación de vectores, llenado, cambio de dirección
como en la generación de datos aleatorios y uso de operadores matemáticas en la herramienta LabView
Problema a resolver
Es necesario construir un instrumento virtual que permita simular a través de indicadores de led, los tipos de
energización que es posible aplicar a un motor paso a paso unipolar, dándole la posibilidad al usuario de:
- Seleccionar el tipo de energización a simular
- La velocidad a la cual trabajar
- Seleccionar el sentido de giro (horario-antihorario)
- La resolución del motor paso a paso
- Pausar la simulación y reanudarla
- Resetear e iniciar de nuevo la simulación
Adicional a lo anterior incluir una sección donde se pueda calcular la cantidad de pasos a generar en el motor, para
lograr un giro de un ángulo x, generado aleatoriamente, así:
- Disponer de un botón para generar el numero aleatorio “n” entre 0 y 720° que indique la cantidad de grados a
rotar por el motor.
- Calcular la cantidad de pasos necesarios para generar la rotación del motor los “n” grados generados
anteriormente, de acuerdo al tipo de energización y resolución de paso ingresados por el usuario
- Exportar la cantidad de pasos calculados, el tipo de energización, resolución, velocidad y sentido de giro en el
que se trabajó el motor, a una hoja electrónica.

Algoritmo de la solución del problema planteado en el curso debidamente comentado:

INICIO

False -> “PAUSAR” //Rocker: Botón que pausa el programa, está conectado con un False Constant//

While Loop {

PAUSAR -> CASE STRUCTURE {// El botón de pausar está conectado con un Case Structures//
Vertical Fill Slide -> Wait(ms) //El Vertical Fill Slide, es la graduación de la velocidad del motor, así mismo está
conectado a un Wait(ms), este es el tiempo de encendido de cada LED, donde identifica los pasos //

// Se está creando las variables de los LEDs//

LEDs: A, A2, A3, A4, A5, B, B2, B3, B4, B5, C, C2, C3, C4, C5, D, D2, D3, D4, D5 <- LEDs indicadores de los tipos
de energización del motor.

Tab Control {// En un Tab Control, se genera 5 ventanas, donde están los tipos de Energización //

“Paso Simple” {

Horizontal Toggle Switch -> CASE STRUCTURE: // Botón que decide la dirección Horario – Antihorario, esta eta
conectado con un Case Structure //

Case: True “sentido Horario” {

// Estructura For Loop, que, para este tipo de energización, tiene 4 ciclos//

For Loop 4;1;1 {

(Se encienden los LEDs (A, B, C, D), uno por uno, y se van apagando sucesivamente, en sentido Horario)

Case: False “sentido Antihorario” {

For Loop 4;1;1{

(Se encienden los LEDs (A, B, C, D), uno por uno, en sentido Antihorario)

“Paso Doble” {

Horizontal Toggle Switch -> CASE STRUCTURE:

Case: True “sentido Horario” {


// Estructura For Loop, que, para este tipo de energización, tiene 4 ciclos//

For Loop 4;1;1{

(Se encienden primero el LED A2 y el LED B2, se apaga el LED A2 y se enciende el LED C2, Se apaga
el LED B2 y se enciende el LED D2, Se apaga el LED C2 y se enciende el LED A2, Se apaga el LED D2 y se enciende
el LED B2, así sucesivamente en sentido Horario)

Case: False “sentido Antihorario” {

For Loop 4;1;1{

(Se encienden primero el LED A2 y luego el LED D2, se apaga el LED A2 y se enciende el LED C2, Se
apaga el LED D2 y se enciende el LED B2, Se apaga el LED C2 y se enciende el LED A2, Se apaga el LED B2 y se
enciende el LED D2, así sucesivamente en sentido Antihorario)

“Medio Paso” {

Horizontal Toggle Switch -> CASE STRUCTURE:

Case: True “sentido Horario” {

// Estructura For Loop, que, para este tipo de energización, tiene 8 ciclos//

For Loop 4;1;1{

(Se encienden primero el LED D3 y el LED A3, se apaga el LED D3 y se enciende el LED B3, Se apaga
el LED A3 y se enciende el LED C3, Se apaga el LED B3 y se enciende el LED D3, así sucesivamente en sentido
Horario)

}
Case: False “sentido Antihorario” {

For Loop 4;1;1{

(Se encienden primero el LED A3 y el LED D3, se apaga el LED A3 y se enciende el LED C3, Se apaga
el LED D3 y se enciende el LED B3, Se apaga el LED C3 y se enciende el LED A3, así sucesivamente en sentido
Antihorario)

“Manual” {

Resolución del Motor: Grados // Se crea una variable, para la resolución del motor, que corresponde a los grados. //

Resolución=Grados/5,625 // El valor de los grados, se divide entre un dato que es dependiente del motor, para este caso,
es un motor unipolar //

Resolución -> N-For Loop {// El resultado de la operación anterior, se le asigna a la variable “N”, de una estructura For
Loop//

(Se encienden Los LEDs (A4, B4, C4, D4), y se van apagando sucesivamente, uno por uno, solamente en
sentido Horario, así cuantas veces sea, según los grados ingresados por el usuario)

// Para mostrar los Pasos dependiendo del grado, se muestra por un Numeric Indicator, está conectado a la variable “i”
dela Estructura For Loop//

i -> Numero de Pasos -> (Muestra la cantidad de pasos, cada vez que se encienden todos los LEDs, o cada vez que da
una vuelta por los 4 LEDs.)

“Aleatorio” {
// Se genera un numero aleatorio con ayuda de un Random Number (0-1), entre 0 y 720, como e proceso de la ventana
“Manual”, este número se divide entre un dato que es dependiente del motor, para este caso, es un motor unipolar, y el
resultado de la operación, se le asigna a la variable “N”, de una estructura For Loop//

Grados_Random: 0 - 720

ResolAleat=Grados_Random /5,625

ResolAleat -> N-For Loop {

(Se encienden Los LEDs (A5, B5, C5, D5), y se van apagando sucesivamente, uno por uno, solamente en
sentido Horario, así cuantas veces sea, según los grados ingresados por el usuario)

// Para mostrar los Pasos dependiendo del grado, se muestra por un Numeric Indicator, está conectado a la variable “i”
dela Estructura For Loop//

Numero de Pasos -> (Muestra la cantidad de pasos, cada vez que se encienden todos los LEDs, o cada vez que da una
vuelta por los 4 LEDs.)

APAGAR -> Loop Condition // Botón que apaga el programa //

FIN
Código de la solución del problema planteado en el curso (diagrama de bloques) debidamente comentado:

Rocker conectado a una Case


Structure, para realizar una pausa
cuando lo requiera el usuario

False Constant conectada


con una Variable Local del
botón para PAUSAR,
donde el valor inicial es
pausar en falso

Para el encendido de los LEDs, se utiliza una estructura For


Loop, se evidencia su operación para encendido de los
LEDs según el tipo de energización del motor; como puede
ser el paso Simple, el Paso Doble, el Medio Paso.

Con un Tap Control, se Con este Botón se decide la dirección de


crean las ventanas de los motor, dependiendo de su valor, puede
tipos de energización del seleccionar False o True, en cualquiera de
motor los casos, el orden de los LEDs es
contrarios, así se define la dirección.

Con este Vertical Fill Slide, según su


valor numérico; de 1 a 10, se Ok Button conectado al Loop Condición
multiplica por 1000, que de la estructura While Loop.
corresponde a un segundo, luego
este resultado se conecta aun
Wait(ms)
En la ventana “Manual”, del Tab
Control, tenemos un Numeric
Control, este son los grados que el
usuario puede decidir ingresar,
este valor se divide por un dato
que dependiendo del motor es un
valor único, en este caso es un
motor unipolar; este resultado se
le asigna a la variable “N” de la
estructura For Loop En una estructura Flat
Sequence, donde permite
definir en cada caso, que
LED encender y que apagar.

En un Numeric Indicator, se
evidencia el valor de los pasos que
debe dar el motor, según el grado
ingresado, este está conectado con
la variable “i” de la estructura For
Loop.
En una estructura Flat
Sequence, donde permite
definir en cada caso, que
LED encender y que apagar.

Se genera un numero aleatorio entre 0 y 720,


esto son los grados para analizar en el motor,
Se debe dar dos clics, a la vez, para general
dicho número aleatorio.

Como en la ventana anterior “Manual”, se


hace la misma operación y se le asigna el
resultado a la variable “N”, de la estructura
For Loop.

Numeric Indicator,
se evidencia el valor
de los pasos que
debe dar el motor.
Tab Control

Ventanas que definen los tipos de energización de


un motor paso a paso unipolar

Horizontal Toggle Switch

Control Booleano que contiene dos


Vertical Fill Slide estados True-False, On-Off. Controla el
sentido de giro del motor.
Control numérico. El
usuario programa la
velocidad de giro del
motor

Round LED OK Button

Indicador Booleano que representa datos que tienen dos Control Booleano que
estados True-False, On-Off. Simula el tipo de energización del contiene dos estados True-
motor paso a paso (Paso simple, Paso Doble, Medio Paso, False, On-Off. Va a resetear e
Manual, Aleatorio) iniciar de nuevo la simulación.

Rocker

Control Booleano que contiene dos


estados True-False, On-Off. Va a pausar
o reanudar la simulación.
Numeric Control

Control numérico
donde el usuario
ingresa el grado que va
a girar el motor.

Numeric Indicator

Indicador numérico
donde se visualiza el
número de pasos que
va a realizar el motor
según la resolución
programada.
Numeric Indicator

Indicador numérico
donde se visualiza el
número aleatorio que
es el grado a rotar del
Push Button
motor
Control Booleano que contiene dos
estados True-False, On-Off. Genera el
número aleatorio

Numeric Indicator

Indicador numérico
donde se visualiza la
cantidad de pasos para
generar el ángulo
aleatorio
CAPTURAS DE PANTALLA DEL FUNCIONAMIENTO DEL APLICATIVO:
CONCLUSIONES

Se da solución al problema planteado elaborando un algoritmo en LabView con indicadores led, botones y un motor
paso a paso.

La ayuda que entrega LabView es muy amplia, a este programa se le puede hacer una configuración donde puede ser
compatible con ARDUINO, funciona para hacer controlar el motor; en este caso. Pero sus trabajos y usos pueden ser
muy amplios
REFERENCIAS BIBLIOGRAFICAS

Lajara, V. J. R. (2007). LabVIEW: entorno gráfico de programación. Barcelona, ES: Marcombo. Capítulo 4. pág.
91-114. Recuperado de: https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/35715

National Instruments Corporation  (2015) [Software LabView]. Recuperado


de: https://lumen.ni.com/nicif/esa/acadevallvdl/content.xhtml

Monroy, J. (2017). Tipos de datos. [OVI] Recuperado de: http://hdl.handle.net/10596/12744

Monroy, J. (2017). Optimización de instrumentos virtuales. [OVI] Recuperado de: http://hdl.handle.net/10596/12747

También podría gustarte