11-18-2010 07:06 PM
Intento generar señales ttl con mydaq para controlar un puente hache entonces aparte si es posible cambiar el dutycycle
11-26-2010 11:52 AM
Hola charlesdom;
MyDAQ tiene 8 entradas y salidas digitales. Cada una de ellas es una interfáz de funciones programables (PFI), esto quiere decir que puede ser configurada como una entrada o salida digital de propósito general y con un reloj controlado por software o también puede actuar como un contador.
Si quieres más informaición acerca de como usar los contadores te recomiendo visites esta liga:
La limitante es que la salida no es compatible con niveles lógicos CMOS 5V, es decir las líneas digitales de entrada y salida son de 3.3 V LVTTL y pueden tolerar 5 V de entrada. Por lo tanto puedes ocupar MyDAQ para controlar un "Puente H" si éste maneja niveles TTL, es decir hasta 0.8 V en bajo y desde 2.3 V en alto (generalmente están construidos con transistores bipolares BJT)
Hablando del dutycycle, ya que las entradas y las salidas digitales tienen un reloj controlado por software, el duty cycle va a variar dependiendo de la PC que estés ocupando, pues interrupciones como el antivirus, el mouse o actualizaciones de windows, pueden llegar a variar el reloj. Una computadora te puede dar como máximo un reloj de 1KHz, ( para generar una señal de 1KHz tienes que muestrar a por lo menos 2KHz para mantener la frecuencia). En otras palabras, si la frecuencia de pulso es baja (menor a 1Khz) entonces es posible modificar el dutycycle. Si es mayor (la mayoría de los motores pequeños trabajan a 20KHz), entonces lo que te recomendaría hacer es generar el duty cycle por separado utilizando dos comparadores.
Te recomiendo visites los siguientes foros, en los que se dan ideas de como controlar un motor con una tarjeta controlada por software
Digital I/OStepper Motor Control with a USB-6008
Te deseo mucha suerte en tu aplicación
MarisolM
03-21-2012 12:57 PM
Buenas estoy tratando de controlar un motor paso a paso bipolar con mydaq, con las salidas digitales, el problema que tengo es la velocidad del motor, que con el programa que hice, no permite que vaya mas rapido. Ya experimetnalmente hemos medido con el osciloscopio y nos dan al rededor de 20 Hz, como maxima velocidad, no hay forma de aumentarla???, de cuanto es la maxima frecuencia de salida para las salidas digitales de mydaq.
Gracias
03-22-2012 12:37 PM
Hola Ignacio.
Me podrías dar más información sobre como conectas el motor de pasos? Utilizas un driver para motores de pasos o dos puentes H?
Con respecto a la velocidad, te comento que si realizas los pulsos por medio de Software los pasos estan limitados a la velocidad con que corra tu programa. La velocidad máxima que podrías lograr trabajando desde una PC con Windows es de 1 ms (1 kHz), pero si tu programa realiza muchas operaciones lentas en serie con la generación de pulsos tendrás una velocidad más lenta.
Puedes configurar un tren de pulsos para el motor como menciona la página 40 del manual para mejorar la velocidad del motor: http://www.ni.com/pdf/manuals/373060e.pdf.
Me podrías mostrar tu programa para ver que otras mejoras se pueden hacer?
03-22-2012 01:47 PM
Si mira te adjunto el programa. Experimentalmente lo medimos con el osciloscopio que trae mydaq y nos dio una frecuencia de aproximadamente 40 hz, el problema es que la conectar el motor se mueve pero muy despacio conectamos el motor en las salidas digitales de la 0 a la 3, con un puente H con transistores, te adjunto el programa de lab view. Estamos usando una rutina de medios pasos para probar pero igual nos da la misma velocidad,
Saludos
03-22-2012 03:53 PM
Hola Ignacio. Primero que nada te recomiendo que utilices la función DAQmx Create Channel y DAQmx Clear Task al inicio y al final de tu aplicación para no tener problemas al dejar la aplicación corriendo por mucho tiempo.
Además, estas mandando un solo pulso controlado por software, y con la función de wait ms, por lo que en cada cuadro de tu secuencia pasa lo siguiente:
1. Inicia la secuencia.
2. DAQmx manda la instruccion a la MyDAQ de poner las salidas que indicaste.
3. Wait ms espera el tiempo que indicaste.
Esto quiere decir que por ejemplo si le pones un 50 a la velocidad, lo que va a pasar, por ejemplo (los valores de tiempo son un ejemplo, no son los valores reales):
1. -
2.~100 ms
3. ~ 50 ms
Total: 150 ms
Frecuencia de los pulsos ~3 Hz.
Para solucionar esto podrías primero cambiar tu función de wait (ms) por wait until next ms multiple, esto hara que si especificas por ejemplo 50 ms, esperará un múltiplo de 50 ms entre pulsos.
Sin embargo aún con esto quedarás limitado por la velocidad del sistema operativo, por lo que una solución más viable sería crear una función con muestras múltiples y pasarle un tren de pulsos al motor. Otra recomendación que te haría para hacer más fácil la interfaz con la computadora sería el agregar un Driver de motor de pasos, que reciba solamente señales de paso y dirección, lo que simplifica las señales que tienes que mandar por la computadora (1 pulso y una señal indicando dirección, en lugar de 4 pulsos).
Saludos!
03-22-2012 04:14 PM
Y existe un driver para motores bipolares en labview? ó ya seria otro programa por aparte
Gracias
03-22-2012 04:23 PM - edited 03-22-2012 04:24 PM
Me refiero a un circuito físico que convierte las señales de paso y dirección a las conmutaciones de las bobinas.
Un ejemplo, aunque hay opciones más económicas.
También puedes programar uno con un microcontrolador, o bien puedes trabajar con las señales como las tienes en este momento.
03-22-2012 05:03 PM
Mas bien es parte del diseño en los puentes H, ahora te tengo otra pregunta, no tienes un ejemplo de como usar el Daqmx virtual chanel,o mayor documentación para esta herramienta
Gracias
03-22-2012 05:33 PM
Aqui te dejo un ejemplo de como controlar un motor de pasos con DAQmx: https://decibel.ni.com/content/docs/DOC-6385
En este ejemplo solo mandan un pulso (para un driver como el que te puse), tendrías que modificarlo para mandar las 4 señales.
Saludos!