Generacion PWM por LABVIEW

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.
 
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
 
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.
 

Adjuntos

  • ejemplo_630.jpg
    ejemplo_630.jpg
    214.5 KB · Visitas: 731
  • plus0083_115.jpg
    plus0083_115.jpg
    34.4 KB · Visitas: 1,490
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.
 
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
 
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
 

Adjuntos

  • tubesmanual_604.pdf
    558.3 KB · Visitas: 613
  • doc1_796.doc
    90 KB · Visitas: 619
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
 

Adjuntos

  • ejemplooscilador_140.jpg
    ejemplooscilador_140.jpg
    57.5 KB · Visitas: 649
  • labview_pwm_169.jpg
    labview_pwm_169.jpg
    56.6 KB · Visitas: 643
  • osciladordigital_904.zip
    19.5 KB · Visitas: 911
  • labview_pwm_911.zip
    26.3 KB · Visitas: 1,772
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 =)
 
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..
 
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.

PfrontalPWM.jpg


bloquesPWM.jpg
 

Adjuntos

  • pwm_152.rar
    15.8 KB · Visitas: 467
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.

sealPWMLabView.jpg


SealPWMbloques.jpg
 

Adjuntos

  • seal_pwm_199.rar
    29.8 KB · Visitas: 506
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.

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.

PfrontalPWM.jpg


bloquesPWM.jpg
 
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
 

Adjuntos

  • labview_pwm_80_615.zip
    12 KB · Visitas: 509
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
 
Atrás
Arriba