Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

Problem sending TTL signal out of digital output of USB DAQ

I am using a DAQ card USB 6008 to try to control a servo on a robotic arm. I am sending a TTL signal out of a serial digital output. What should happen is that if i send out the propper freaquency and duty cycle, the servo should move and hold its postion. But when i send out the correct signal the servo moves past the correct angle without stopping while making jerky movements and will max out the range of motion and start shaking the arm. I have tested the servo using a function generator and i can get the servo to work correctly using it.

I'm using the Simulate Signal Express Vi. to generate the squarewave and i connected that to the DAQ Assistant Vi. where the signal is sent out a serial digital output. That is all inside a while loop.

Could the problem be the the DAQ is a USB and that it is causing problems with signal generation to the servo? i have no idea, i am new to labview and controlling servos. Any help would be greatly apperciated.

thanks,

eric

0 Kudos
Message 1 of 8
(4,125 Views)

Did you connect the DAQ GND as part of the signal into the servo?

Do you have an oscilloscope to view the signal generated by the 6008?

~~~~~~~~~~~~~~~~~~~~~~~~~~
"It’s the questions that drive us.”
~~~~~~~~~~~~~~~~~~~~~~~~~~
0 Kudos
Message 2 of 8
(4,102 Views)
yeah, the ground is connected and we tried it with an analog out also and we get same problem. We hooked it up to an oscilloscope and if we send a signal that is 100hz,  TTL,14% duty cycle. The pulse width will end up  almost double and the duty cycle is off. The minium pulse width the DAQ card can generate is 100ns, so that should not be the problem. I'm thinking it is the code because the signal generator express vi. won't let me send more than 1 sample at a time to the DAQ assistant, if i send more i get an error saying that the send sample is greater than the task sample. Also if i switch the DAQ assistant to "n samples" it gives an error requesting clock samples. 
0 Kudos
Message 3 of 8
(4,093 Views)
Where do you get that the minimum pulse width of the DAQ board is 10ns? The USB-6008 has a max sample rate of 10ks/sec for the analog output and the digital I/O is software timed and not even close to that rate. In fact, you cannot rely on any sort of repeatable digital timing with that board.
0 Kudos
Message 4 of 8
(4,090 Views)
my mistake, i was looking at the counter info. it says min pulse it will count is 100ns. whats the min pulse out put length?
0 Kudos
Message 5 of 8
(4,083 Views)
It does not have the ability to output a pulse from the counter I believe. The counter is an event counter only. I don't think this is an appropriate card for what you are trying to do.
0 Kudos
Message 6 of 8
(4,080 Views)
its a DAQ card. The 100ns was the minimum event information for the counter in the DAQ card, i do not want to count anything. I can get it to output a signal, just not the signal i want.

Does anybody else have any ideas?
0 Kudos
Message 7 of 8
(4,072 Views)
I didn't say you wanted to count something. What I said was that the USB-6008 only has an event counter. More expensive DAQ devices can output precision digital pulses with the on-board counter circuit. The USB-6008 has some serious limitations when it comes to digital. It has software timing only which means the update rate is highly dependent on your program and operating system.  And the the analog output has a maximum output of only 150s/sec. If your specs fall within this range, then you can use this card.
0 Kudos
Message 8 of 8
(4,063 Views)