# Generacion PWM por LABVIEW



## abadia (May 12, 2008)

Necesito por favor que me colaboran de que manera puedo generar PWM a través de labview.

Lo que pasa es que necesito controlar una airplane de 4 canales y lo necesito hacer a través de este medio y por este método.


----------



## louis3x0 (Jun 10, 2008)

Si todavia te interesa enviame un mensaje y te envio el VI con el PWM en labview que hice para controlar un levitador de tunel de viento, estoy seguro que te funciona, la verdad es muy sencillo de implementar, si no tinenes salidas PWM puedes trabajar con las salidas digitales de la targeta de adquisicion, seria algo mas o menos así (para que entiendas):

t=tao, ancho de pulso en milisegundos del PWM (tienes que tener cuidado porque no todas las funciones de tiempo en LabView trabajan en tiempo real, busca en el help)

t1=leer tiempo actual
OUT=0
enviar OUT a salida digital0 

Ciclo infinito

  t2=leer tiempo

  si (t2-t1)>=t 
      invertir OUT 
      enviar OUT a salida Digital0
      t1=leer tiempo
   fin

fin

en los ejemplos de Labview esta como usar salidas y entradas Digitales


----------



## Saad Nassar (Oct 17, 2008)

Hola, 

Yo tambien necesito hacer un PWM en Lab view. Necesito que la salida sea de tipo digital y no counter. Alguien me puede ayudar?


----------



## louis3x0 (Oct 20, 2008)

Mira estube buscando el proyecto que hice pero dure como 1 hora buscando en los dvd´s y nada que lo encuentro, es que eso lo hice hace como 3 años jejeje, veras en: Programming -> Timing, hay una funcion que se llama wait (ms), crea una pausa de x milisegundosm, donde x es la entrada, mira la foto (hay esta mejor explicado), me gustaria saber que tipo de motor estas utilizando entre otros detalles del proyecto y te recomiendo utilizar bolas de icopor ya que son de mayor tamaño y a medida que se ajuste mas tunel podras hacer un mejor control (trabajando con la presion del viento sobre la esfera) ya que las ecuaciones del viento  con un pimpon en el medio jajaja son caoticas (me refiero a que una rafaga viento que entre al tunel por arriba o abajo puede arruinar todo si hay mucho espacio entre el pimpon y las paredes del tunel, lo digo por mi experiencia cuando alguien abrio las ventanas) y no quieres controlar un caos o si? y otra cosa el tubo debe ser muy alto mas halto que el que yo utilice para que tengas un mayor rango de trabajo porque el motor tiene zonas muertas cuando el V es muy pequeño y cuando esta casi en el maximo V ya no varia mucho. Estamos hablando a ver que mas me acuerdo y si necesitas ota cosa, el ejemplo que te mando es eso un ejemplo yo lo hice con un 'case' hace 3 años pero da lo mismo que hacerlo con la estructura de secuencia que esta en el ejemplo, el ciclo maximo debe ser muy pequeño para que el contol no se estropee de lo contrario tu programa mantendra mas tiempo detenido que andando, intenta con ciclos desde 50ms hasta 500 ms a ver como te va. si tienes fotos o mas información sobre el proyecto me cuentas y miro a ver si te puedo dar alguna recomendacion, bye.

att: Louis

pd: porfavor mensajes relacionados con el proyecto en el foro, depronto a alguien le sirve de ayuda. cuando sea para invitarme a una fiesta con muchas chikas/trago o ambas hay si me avisan por privado pa que no se vengan los goleros.


----------



## louis3x0 (Oct 20, 2008)

mañana prometo subir un vi del pwm optimizado. que no tenga retardos ni tiempos perdidos. si no lo encuentro lo volvere a hacer, tengo NI LabView 8.6 espero que sea compatible con sus versiones si no favor DIGAN antes de mañana por la noche para subir adicional/ una foto.


----------



## Saad Nassar (Oct 20, 2008)

Muchas gracias Louis,

Las bolas de ping pong tienen un diametro de 38mm y yo fabrique los tubos de 40mm. El espacio que  queda entre la bola y el tubo es minimo, no creo que esto signifique un problema mayor. Adjunto te envio un paper acerca del proyecto que estoy haciendo. La idea es disenar estrategias de Dynamic Resource Allocation para controlar la altura de las bolas. Me serviria mucho cualquier información acerca del modelo matematico que tengas o tambien si sabes algo de Resource Allocation. En el paper usan Matlab y DSpace, yo estoy usando Lab View  8,5. 

Gracias otra vez por la atensión,

Saad Nassar


----------



## Saad Nassar (Oct 20, 2008)

Louis aqui te mando el VI que hice para un pwm. dunciona bien unos segundos y despues se muere. Lo revise ocn el osciloscopio y la salida no es constante, el ancho de pulso varia. Yo creo que la logica del VI esta bien pero algo esta mal con el software. Al parecer la funcion "elapsed time" deja de reiniciarse cada ciclo sin razon alguna. Por favor hechale un mirada a ver si vez que esta mal.

Gracias,

Saad


----------



## louis3x0 (Oct 21, 2008)

Bueno muchachos aqui les paso lo que les prometi, que conste que me tome el trabajo de hacer el PWM porque mandaste lo que habias hecho... que funcionara o no... hiciste el esfuerzo, asi que hay tienes tu PWM, intente hacerlo explicativo asi que primero tomence el tabajo de ver el oscilador simple (Ver adjunto "OsciladorDigital.vi") este muestra mi logica de como funciona un elapsed time, haciendo que cada vez que transcurre un tiempo deteminado se produzca un cambio en la salida de 1 a 0 y viceversa, para que sea visible cada ciclo en una grafica chart,  esta es la base del PWM (Ver adjunto "LabView PWM.vi") solo que ahora cada ciclo se iniciara con valor de 1 si -> la salida esta en 0 y el Duty Ciycle % NO es 0, despues de que la salida es 1 se esperara a que el tiempo correspondiente al Duty Ciycle % transcurra, al cumplirse este % de tiempo la salida tomara un valor de 0 a exepcion de que esta salida ya sea 0. LISTO!
Este PWM esta diseñado para ser eficiente ya que no se pierda tiempo en ciclos de espera ni se sobre escriben valores en los puertos, tampoco se realizan operaciones inoficiosas como cuando se utiliza la funcion Elapsed Time ya que esta realiza procesos que no vienen al caso. El retardo 'ms to wait' lo puse solo para que el programa no andara tan rapido y se pudieran apresiar mejor los cambios en las salidas, si quieren pongan ms to wait=0 para que vean la diferencia, este retardo no es necesario en sus diseños solo es para que aprecien mejor los ejemplos.

Bueno ahora si me pueden enviar los 20mil pesitos a bogota o a la cuenta jajaja no mentiras.

Att: Louis


----------



## alex185aa (Nov 4, 2008)

Hola que tal? Yo necesito como generar un pulso eléctrico atraves del puerto serie por medio de Labview para activar un PIC. Es como un switch más o menos lo que necesito pero no se bien como, he estado leyendo sobre VISA, creo que eso es mas bien sobre Tx-Rx de datos 

saludos =)


----------



## 160357 (Dic 2, 2008)

Hola lous3x0 , soy nuevo en este foro, mi situacion es la siguiente :

Estoy haciendo un proyecto y necesito generar un PWM, me gustaria saber si me lo puedes enviar el mismo vi pero para version 8.0 .. te lo agradeceria mucho.. sin mas por el momento espero tu respuesta..


----------



## LHYAZ (Ene 31, 2009)

Este VI es compatible creo hasta con 8.2.. deja y lo pruebo con esa version y te cuento.

Por cierto, una duda... la salida PWM es por puerto?


----------



## LHYAZ (Feb 3, 2009)

El 8.2 si lo abre, la salida es por puerto?


----------



## louis3x0 (Feb 4, 2009)

lo siento la salida no es por puerto, pero no es sino que cambien en el diagrama donde esta el 1 por activar la salida del puerto en alto.


----------



## LHYAZ (Feb 4, 2009)

Correccion, el 8.2 no abre ninguno de los archivos 

Disculpa la molestia de nuevo, pero como no lo pude abrir en mi 8.2 me puse a hacerlo pero mi salida siempre es uno.... En los casos "true" y "false" que no se ven hay conexion directa punto a punto? asi lo puse pero no me da resultado.

Te pongo las imagenes del diagrama a bloques y del panel frontal para ver si me puedes echar una mano porfa.... Tambien adjunto el VI que hice por si sirviera de algo... por mas que busco no encuentro el fallo.

Saludos y gracias de nuevo.


----------



## LHYAZ (Feb 4, 2009)

Bueno, con el simulador de señal he conseguido variar el ciclo de trabajo de una onda cuadrada que es lo mismo que un PWM si vemos un tren de pulsos. Ahora tengo otro poblema.... 

Puedo mandar esa onda simulada a algun puerto de mi DAQ? cuento con modulo e/s analogo y modulo e/s digital

En realidad lo que necesito es controlar la velocidad del motor de un reómetro con Labview, asi como invertir su sentido de giro.

Gracias!

Dejo las capturas de lo que tengo.


----------



## louis3x0 (Feb 5, 2009)

Disculpa pero pude ver que modificaste el programa hasta que lo fregaste jejejeje pero relax, te recomiendo que no pongas el tiempo de espera en 0 tan pequeño porque no podras ver los cambios en la ventana grafica ok (ademas lo multiplicaste por mil lo que a mi me parece una locura), pusiste la condicion del CaSe como diferente en vez de como >= (no es lo mismo ojo con esos cambios), primero deberias entender el funcionamiento del programa antes de modificarlo, otra opcion es que hagan un subVI (una funcion) basado en el ejemplo de pwm que les pase, esta seria la forma correcta de utilizar el ejemplo pero tendrian que entenderlo antes para saber que lo que esta antes del while serian entradas del subvi, el while desapareceria y la salida yo la dejaria adentro del subvi solo modificando en ves de 1 que active la salida digital/pwm a 1 ó 0, ademas en las ultimas versiones de labview se puede aprovechar realmente las propiedades multitarea de nuevos procesadores lo cual ayuda al funcionamiento del programa.




			
				LHYAZ dijo:
			
		

> Correccion, el 8.2 no abre ninguno de los archivos
> 
> Disculpa la molestia de nuevo, pero como no lo pude abrir en mi 8.2 me puse a hacerlo pero mi salida siempre es uno.... En los casos "true" y "false" que no se ven hay conexion directa punto a punto? asi lo puse pero no me da resultado.
> 
> ...


----------



## louis3x0 (Feb 5, 2009)

Bueno ya que muchos me han enviado mensajes pidiendo en vesiones de 7.5 8.0 etc, pues aqui les mando el PWM en 8.0, los que tienes versiones inferiores me disculparan pero no puedo ayudarlos ya que la version 8.6 solo me permite salvar de 8.0 en adelante, espero que les funcione y repito lo que siempre les digo: utilicen las funciones (Subvi) o sus programas se convertiran en un sancocho, e intenten entender cualquier prog antes de modificarlo (utilicen el paso a paso de la entana de diagramas).

Saludos a todos...

Louis

pd: este comentario seria mejor ni leerlo pero ya que, en la siguiente pagina del foro explico porque... sigan leyendo


----------



## louis3x0 (Feb 5, 2009)

otra cosa el programa es solo un ejemplo no es la verdad absoluta se puede mejorar pero mejorenlo ustedes jejeje bye


----------



## LHYAZ (Feb 5, 2009)

louis3x0 dijo:
			
		

> Disculpa pero pude ver que modificaste el programa hasta que lo fregaste jejejeje pero relax, te recomiendo que no pongas el tiempo de espera en 0 tan pequeño porque no podras ver los cambios en la ventana grafica ok (ademas lo multiplicaste por mil lo que a mi me parece una locura), pusiste la condicion del CaSe como diferente en vez de como >= (no es lo mismo ojo con esos cambios), primero deberias entender el funcionamiento del programa antes de modificarlo, otra opcion es que hagan un subVI (una funcion) basado en el ejemplo de pwm que les pase, esta seria la forma correcta de utilizar el ejemplo pero tendrian que entenderlo antes para saber que lo que esta antes del while serian entradas del subvi, el while desapareceria y la salida yo la dejaria adentro del subvi solo modificando en ves de 1 que active la salida digital/pwm a 1 ó 0, ademas en las ultimas versiones de labview se puede aprovechar realmente las propiedades multitarea de nuevos procesadores lo cual ayuda al funcionamiento del programa.



Jajaja pues vaya que si. Le di una buena fregada...

Es que te comentaba que lo copie de la imagen y lo arme desde cero, por eso los errores. Y como en la imagen no se ve bien, tambien de ahi salieron otros.
Voy a probar el que mandas en la version 8... gracias


----------



## LHYAZ (Feb 5, 2009)

Bueno, pues ya lo intenté abrir pero no se pudo 

Me dice que la version es superior. Creo que es un error al guardar?






Saludos.


----------



## louis3x0 (Feb 5, 2009)

Disculpen pero no me habia dado cuenta que sale un error cuando lo intento guardar para version 8.0 y 8.2, el cual hace que se guarde automaticamente en 8.5. Parece que van a tener que buscar labview 8.5 para poder convertir el prog a una version inferior. No digo que descarguen el Labview 8.6 en "http://cache.phazeddl.com/1269766/NI%20LabView%208." ya que eso estaria mal porque si hacen un prog en 8.6 seguramente solo lo podran guardar en 8.5 y porque es ilegal asi que porfavor compren este excelente software, mi intensión es puramente educativa asi que digan en sus universidades que paguen por una version mas actual.

pd: aun no entiendo como es que no pueden salvarse un programa tan sencillo a 8.0.


----------



## LHYAZ (Feb 6, 2009)

pues no es que yo vaya a hacer semejante atrocidad, pero a ver como sale y lo planteo por aqui..... de cualquier forma voy a tratar de generar la señal que ya logre simular por medio de mi tarjeta digital con el DAQ que vi que tambien sirve para generar... si lo logro cuelgo el VI.

Gracias de nuevo louis


----------



## capistran (Abr 14, 2009)

Yo también ando con la necesidad de controlar una bomba de agua CA, por medio de PWM así presiento que es mas fácil, tomé el ejemplo que  nos proporciono l*ouis3x0*  yo estoy utilizando un DAQ de Keithley el KUSB 3100 y  lo único que hice es agregar la salida a puerto digital. 







Y FUNCIONA !   

Los bloques que utilizo son los que me proporciona Keithley para poder controlar el DAQ desde LABVIEW  si van a utilizar uno de NI deberán utilizar los de NI-DAQ-MX

saludos, espero que les  sirva, y si algo no va bien, pues haber que podemos hacer !
muchas gracias por su ayuda  claro claro.


----------



## LHYAZ (Abr 14, 2009)

Que version del lab utilizas?  yo tengo tarjeta digital en mi daq NI, pero no he podido.
 Incluso generé la señal y simulada queda bien, pero no he encontrado como sacarla.

Saludos!


----------



## Malxir (Dic 3, 2009)

Buenas Tardes, no soy muy bueno en esto de la electronica pero estoy interesado en el post del pwm de labview, y quisiera saber como puedo controlar un bombillo incandescente de 60 W con este sistema de pwm,
es decir sin exponer a la tarjeta a algun daño.
La funcion del bombillo es la de proveer calor y obtengo la temperatura de la camara a traves de un par de sensores.
Tengo una trajeta NI USB 6009
Muchas gracias


----------



## manu172 (Abr 30, 2010)

Hola. Quiero hacer un tren de pulsos los cuales deben tener un ancho de pulso de entre 0,2 y 0,8 milisegundos. Hasta ahora el tren sin pulsos me ha salido con un generador de ondas cuadradas. Lo probe con una tarjeta de adquisición de datos por una salida analógica y me salio hasta una frecuencia de 100 Hz. Luego se distorsionaba. Como hago para generar la señal cuadrada con ese ancho de pulso. Lo multiplico con otro generador de ondas cuadradas? Adjunto el vi que utilize con salida a puerto paralelo.


----------



## Monica Isabel (Dic 15, 2010)

Malxir dijo:


> Buenas Tardes, no soy muy bueno en esto de la electronica pero estoy interesado en el post del pwm de labview, y quisiera saber como puedo controlar un bombillo incandescente de 60 W con este sistema de pwm,
> es decir sin exponer a la tarjeta a algun daño.
> La funcion del bombillo es la de proveer calor y obtengo la temperatura de la camara a traves de un par de sensores.
> Tengo una trajeta NI USB 6009
> Muchas gracias



Tengo un proyecto similar casi el mismo y tengo dificultades para enviar la señal de PWM si tu lograste realizar tu proyecto te agradecería enormemente me colaboraras.  Gracias


----------



## danny90 (Jul 10, 2015)

quiero saber como controlar  el pwm a travez de labview al pic 18f2550
a travez de la comunicacion HID


----------



## TRILO-BYTE (Jul 10, 2015)

pues hay que buscar ejemplos de como comunicar HID el labview

lo del pic ya esta mas facil


----------

