Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

secuencia de leds.

Tengo un problema, estoy haciendo una secuencia de luces con una DAQ 6009 y labview 2012 32 bits, y una de las opciones es prender de derecha a izquierda dejando encendido el led anterior por ejemplo prende led 1, prende led 2, prende led 3…. Led 8, después apaga led 8, apaga led 7, apaga led 6…..led 1, pero no sé cómo hacer que la daq mande a la protoboard la señal de que se quede prendido el led anterior, la otra secuencia con la que tengo problema es prenden en pares, por ejemplo led 1,3,5,7 prenden mientras led 2,4,6,8 están apagando pasan 500 mlseg. y cambia prende led 2,4,6,8 y se apaga led 1,3,5,7 quedaría algo así 10101010 y después 01010101

Soy nuevo en esto espero que me puedan ayudar que tengan excelente día. 

0 kudos
Mensaje 1 de 10
11.997 Vistas

Hola,

 

        Creo que tienes los conceptos claros de como hacerlo, sube tu código o una imagen para ayudarte a dar con la solución de tu problema.

 

Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
Mensaje 2 de 10
11.980 Vistas

Hola Gracias por responder, en seguita te anexo lo que llevo, solo tengo 2 secuencias porque no sé cómo hacer que prendan 2 o más a la vez, o se apaguen. 

 

 

0 kudos
Mensaje 3 de 10
11.975 Vistas

Hola,

 

       No lo puedo abrir porque tu version de labview es 2012 y yo solo tengo la 2009, por favor guardalo usando Save for Previous Versions... y selecciona 2009 y vuelvelo a subir.

 

Gracias,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
Mensaje 4 de 10
11.967 Vistas

ok, aqui anexo la nueva copia. gracias! 

0 kudos
Mensaje 5 de 10
11.962 Vistas

Hola,

 

          Ya pude ver tu código y entendi que te esta sucediendo, tal como lo tienes no estas escribiendo un bit al DAQ, sino que por el contrario estas escribiendo todo el puerto, entonces para pasar varios leds encendidos no tienes que pasar el numero que enciende uno y luego el que enciende el otro porque asi como lo tienes solo queda encendido el ultimo que escribiste, lo que debes hacer es pasar el numero equivalente a todos los leds encendidos.

 

            Te muestro los valores binarios y enteros para que entiendas mejor:

 

Led 1 y 2 => 11000000 => 192

Led 2 y 3 => 01100000 =>  96

Led 3 y 4 => 00110000 =>  48

Led 4 y 5 => 00011000 =>  24

Led 5 y 6 => 00001100 =>  12

Led 6 y 7 => 00000110 =>   6

Led 7 y 8 => 00000011 =>   3

 

Led 1-2 => 11000000 => 192

Led 1-3 => 11100000 => 224

Led 1-4 => 11110000 => 240

Led 1-5 => 11111000 => 248

Led 1-6 => 11111100 => 252

Led 1-7 => 11111110 => 254

Led 1-8 => 11111111 => 255

 

Led 7-8 => 00000011 =>   3

Led 6-8 => 00000111 =>   7

Led 5-8 => 00001111 =>  15

Led 4-8 => 00011111 =>  31

Led 3-8 => 00111111 =>  63

Led 2-8 => 01111111 => 127

Led 1-8 => 11111111 => 255

 

            Haz tu los cambios que yo no tengo el DAQ. Hay algunas mejoras que se pueden hacer a nivel de programación, pero para empezar esta bien como lo tienes ya que esta bastante sencillo y entendible.

 

Saludos Cordiales,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
Mensaje 6 de 10
11.954 Vistas

Muchas gracias!! También pensé otra manera aquí la anexo como posible solución, la solución que me propones la voy a utilizar también gracias! 

0 kudos
Mensaje 7 de 10
11.943 Vistas

iAmbriz, Mis sugerencias complementando lo que dice LUIS:

 

1. No utilice el llamado al DAQ ASSISTANT en varias partes de su código, si usted observa cada vez que hace el llamado lo hace para hacer la misma función ( Salidas digitales ) por lo tanto solo es necesario hacer un solo llamado ( además al hacer múltiples llamados malgasta recursos y hace que el VI pese mas, por ejemplo si observa su VI pesa casi 1,5M algo muy grande para un código tan sencillo ), lo que debe hacer es un solo llamado  y por código ajustar los valores para ingresar al Daq assistant,   

 

2. Evite usar la "Flat Sequence Structure", esta estructura solo se debe usar cuando sea necesario.

 

3. Mi sugerencia para su código, es ingresar de una forma adecuada los datos ( Como le comento LUIS ), utilizar una matriz para guardar todas las posibles secuencias, seleccionar cual se va a visualizar con el selector y finalmente utilizar adecuadamente el DAQ ASSISTANT ( Observe la imagen donde se tomo los valores que menciono LUIS), este ejemplo le puede ayudar, claro esta que se puede mejorar ya que por ejemplo solo cambia de secuencia al completar un ciclo de los leds, algo que pueda que no necesite.   

 

secuencia led.png



Ing. Jonathan E. Cruz Ortiz

ENERGÍA PROACTIVA S.A.S

Cel : (+57) 3173669343 - (+57) 3124451894

Mensaje 8 de 10
11.932 Vistas

Me puenden hacer el favor de vorver a subir el harchivo pero para vercion 2013 les agradeseria mucho

0 kudos
Mensaje 9 de 10
9.586 Vistas

Hola RomanGames2003,

 

En LabVIEW puedes compartir un código con otros desarrolladores simplemente creando un "snippet" o algo así como un "pantallazo" o print screen pero de solo la parte del código. Así, guarda la imagen que compartió Jockelnice más arriba (verás que es una imagen PNG) y simplemente la arrastras hacia el diagrama de bloques de LabVIEW. Para más detalles, te dejo este enlace con información sobre los "snippets" en LabVIEW.

 

Use VI Snippet to Store and Share Reusable Code Sections

 

Espero que te ayude esta información 🙂

Patricio Cortes | NI Cono Sur
0 kudos
Mensaje 10 de 10
9.549 Vistas