# Delay without affecting pulse width

B

#### BR

Jan 1, 1970
0
Hello,

Is there a circuit that can delay a pulse train without affecting its
width? The pulse width is about 1.5ms to 2ms, every 20ms (RC servo
signals). The delay needed is less than that, perhaps up to 1 ms. It
would be convenient if it were variable.

Thanks

Ben

--

J

#### John Fields

Jan 1, 1970
0
Hello,

Is there a circuit that can delay a pulse train without affecting its
width? The pulse width is about 1.5ms to 2ms, every 20ms (RC servo
signals). The delay needed is less than that, perhaps up to 1 ms. It
would be convenient if it were variable.

G

#### Geir Klemetsen

Jan 1, 1970
0
BR said:
Hello,

Is there a circuit that can delay a pulse train without affecting its
width? The pulse width is about 1.5ms to 2ms, every 20ms (RC servo
signals). The delay needed is less than that, perhaps up to 1 ms. It
would be convenient if it were variable.

The only thing I can think of right now, is to couple several TTL-inverters
in series. Each one of them works as a delay line. The only thing you need
to know is the delay of each one of them. A typical IC would be an 7404.

Hope this helps : )

B

#### BR

Jan 1, 1970
0
The best I can do is give a description of the apparatus. It
involves three RC servos mounted on a rotating ring used to form a
outside rim of a small 5" dia. hemispherical bowl containing water.
The opening of the 5" bowl must be in full view. The 5" bowl is
floating in a larger bowl filled with water. All three servos are
connected to one signal output of an EZ servo 1 chip (a pre-
programed controller). A problem occurs when the bowl is released.
The gripper releases the bowl as fast as it can when the signal
pulse width changes abruptly from 1725µs to 1650µs. However, the
differences between servos always causes the bowl to drift slowly
away from the lagging servo. This is determined by releasing the
bowl while the ring is stationary. Adjusting the servo mounting hw
only reduces the problem. So, I'm looking for a way to fine tune
the release and minimize linear motion of the bowl. If this can't
be done with delay lines I would appreciate any suggestions.

Ben

--

A

#### Andrew Holme

Jan 1, 1970
0
BR said:
The best I can do is give a description of the apparatus. It
involves three RC servos mounted on a rotating ring used to form a
outside rim of a small 5" dia. hemispherical bowl containing water.
The opening of the 5" bowl must be in full view. The 5" bowl is
floating in a larger bowl filled with water. All three servos are
connected to one signal output of an EZ servo 1 chip (a pre-
programed controller). A problem occurs when the bowl is released.
The gripper releases the bowl as fast as it can when the signal
pulse width changes abruptly from 1725µs to 1650µs. However, the
differences between servos always causes the bowl to drift slowly
away from the lagging servo. This is determined by releasing the
bowl while the ring is stationary. Adjusting the servo mounting hw
only reduces the problem. So, I'm looking for a way to fine tune
the release and minimize linear motion of the bowl. If this can't
be done with delay lines I would appreciate any suggestions.

Here's one way you might do it:

Trigger a monostable on both edges of the input pulse. Clock the input
into a D-type flip-flop on mono timeout. Exclusive-OR the flip-flop
output with the input to make a trigger pulse for the mono. The
flip-flop output is also your delayed pulse.

It sounds like you're trying to compensate for small differences in
servo response time. It might require constant fiddling and tweaking
to counteract ageing or changes in temperature.

J

#### John O'Flaherty

Jan 1, 1970
0
Geir said:
The only thing I can think of right now, is to couple several TTL-inverters
in series. Each one of them works as a delay line. The only thing you need
to know is the delay of each one of them. A typical IC would be an 7404.

At about 10ns each, it would take 100,000 of them to get 1 ms delay;
still, with six per package it would only be 16,667 ics.

B

#### BR

Jan 1, 1970
0
Here's one way you might do it:

Trigger a monostable on both edges of the input pulse. Clock
the input into a D-type flip-flop on mono timeout. Exclusive-OR
the flip-flop output with the input to make a trigger pulse for
the mono. The flip-flop output is also your delayed pulse.

It sounds like you're trying to compensate for small differences
in servo response time. It might require constant fiddling and
tweaking to counteract ageing or changes in temperature.

Thanks for the suggestion. I'll try it with some old CMOS 4000. I
assume some variable adjustment is possible with the timing
resistor on the mono, but the max delay is less than the pulse
width, is that correct?

Ben

--

A

#### Andrew Holme

Jan 1, 1970
0
BR said:
Thanks for the suggestion. I'll try it with some old CMOS 4000. I
assume some variable adjustment is possible with the timing
resistor on the mono, but the max delay is less than the pulse
width, is that correct?

Yes. If you wanted a longer delay, you might consider using two
monostables - one for each edge, but then you'd have to make sure both
delays were exactly the same. This might even reduce the chip count,
since you can get dual monos in a single DIL package. A more exotic
solution might be to use a bucket-brigade delay line - the type of
thing normally used for audio delay / echo effects.

C

#### Chris

Jan 1, 1970
0
BR said:
Thanks for the suggestion. I'll try it with some old CMOS 4000. I
assume some variable adjustment is possible with the timing
resistor on the mono, but the max delay is less than the pulse
width, is that correct?

Ben

--

Hi, BR. You might want to try using a 74C14, a resistor and a cap,
like this (view in fixed font or M$Notepad):  2/6 74C14  Servo In 200K  ___ ___ |\ |\ Servo Out  o---|___|--o-|___|--o--|H>O--|H>O-----o  20K | A | |/ |/  | | | about 1ms delay  | | ---  '---' ---  .01uF|  |  ===  GND created by Andy´s ASCII-Circuit v1.24.140803 Beta www.tech-chat.de The built-in hysteresis of the C14, along with the R and C, act as a digital delay line. Your 0 to 1 logic transitions will be delayed almost exactly as much as the 1-to-0 transistions. This is because the hysteresis of the 74C14 (and the 74HC14) is centered on 1/2 Vcc. This doesn't work for the 7414, 74LS14, and other TTL versions of this chip for several reasons. Once you know the right value for your application, just substitute a fixed resistor for the pot, and you're good to go. Good luck Chris A #### Anthony Fremont Jan 1, 1970 0 BR said: The best I can do is give a description of the apparatus. It involves three RC servos mounted on a rotating ring used to form a gripper system. Each gripper pad is located equidistant about the outside rim of a small 5" dia. hemispherical bowl containing water. The opening of the 5" bowl must be in full view. The 5" bowl is floating in a larger bowl filled with water. All three servos are connected to one signal output of an EZ servo 1 chip (a pre- programed controller). A problem occurs when the bowl is released. The gripper releases the bowl as fast as it can when the signal pulse width changes abruptly from 1725µs to 1650µs. However, the differences between servos always causes the bowl to drift slowly away from the lagging servo. This is determined by releasing the bowl while the ring is stationary. Adjusting the servo mounting hw only reduces the problem. So, I'm looking for a way to fine tune the release and minimize linear motion of the bowl. If this can't be done with delay lines I would appreciate any suggestions. Perhaps an easier approach would be to play with the voltage on the servos. Higher voltages result in faster servo action (to a reasonable point anyway). I would use a PIC chip for precision and repeatability. 1uS precision is a piece of cake with virtually any PIC, 100nS is just as easy with a faster chip and crystal. R #### Robert Monsen Jan 1, 1970 0 BR said: The best I can do is give a description of the apparatus. It involves three RC servos mounted on a rotating ring used to form a gripper system. Each gripper pad is located equidistant about the outside rim of a small 5" dia. hemispherical bowl containing water. The opening of the 5" bowl must be in full view. The 5" bowl is floating in a larger bowl filled with water. All three servos are connected to one signal output of an EZ servo 1 chip (a pre- programed controller). A problem occurs when the bowl is released. The gripper releases the bowl as fast as it can when the signal pulse width changes abruptly from 1725µs to 1650µs. However, the differences between servos always causes the bowl to drift slowly away from the lagging servo. This is determined by releasing the bowl while the ring is stationary. Adjusting the servo mounting hw only reduces the problem. So, I'm looking for a way to fine tune the release and minimize linear motion of the bowl. If this can't be done with delay lines I would appreciate any suggestions. You are going to try to slow down the signals to each individual servo, I'm guessing, using some kind of RC delay. That sounds like a tuning nightmare. The RC delay will probably be temperature dependent. Anthony Fremont already pointed out that the servos may be voltage dependent, which means that they could be interacting in funny ways if they are all powered from the same battery. I wonder if somehow slowing down the servo action would work? It is probably the quick snap which is imparting energy to the bowl. The energy that is imparted by the faster servos is damped by the final servo. Another possibility would be to use a clear string (like fishing line) to hold the bowl in place. The servos would hold the line, rather than the bowl itself. If the line had no tension on it (it was just used to anchor the bowl in place), it would not be possible for the servos to impart any energy on the bowl by releasing it (depending on their position, they may splash the water, causing motion). The line would be invisble in the water (hopefully). On the other hand, a simple delay using a microprocessor would be easy to cook up. Using the internal clock of a PIC, for example, you could easily get repeatable delays of 1 ms within about 40us. A single$2
microprocessor could sequence the three servos in arbitrary and
repeatable ways, using trimmers to set the relative delay (so you can
tweak it in the field). I can do this for you if you are still
interested in persuing the delay scheme. email me if you are interested.

rc<surname>@comcast.net (replace <surname> with my last name)

--
Regards,
Robert Monsen

"Your Highness, I have no need of this hypothesis."
- Pierre Laplace (1749-1827), to Napoleon,
on why his works on celestial mechanics make no mention of God.

R

#### Rich Grise

Jan 1, 1970
0
On Mon, 07 Mar 2005 19:44:21 -0600, BR wrote:

....A problem occurs when the bowl is released.
The gripper releases the bowl as fast as it can when the signal
pulse width changes abruptly from 1725µs to 1650µs. However, the
differences between servos always causes the bowl to drift slowly
away from the lagging servo. This is determined by releasing the
bowl while the ring is stationary. Adjusting the servo mounting hw
only reduces the problem. So, I'm looking for a way to fine tune
the release and minimize linear motion of the bowl. If this can't
be done with delay lines I would appreciate any suggestions.

You need to either fix your servos, i.e. get three exactly identical
servos, or mechanically couple just one servo to the three fingers.

Anything else would be a klooge, and as others have noted, a nightmare to
tune.

You could also look at slowing down that "abrupt" change from 1725 to
1650, to make it a little smoother. One of the things you'll never ever
tune out is sticktion in a given servo. (i.e., the time from the pulse
change until it actually moves, overcoming standing friction.)

Good Luck!
Rich

G

#### Geir Klemetsen

Jan 1, 1970
0
John O'Flaherty said:
At about 10ns each, it would take 100,000 of them to get 1 ms delay;
still, with six per package it would only be 16,667 ics.

Ok, forget that. What about using a delay line, such as those used in older

Now the only thing i cannot help with is the pinouts for such one thing and
the delay it provides...

B

#### BR

Jan 1, 1970
0
Hi, BR. You might want to try using a 74C14, a resistor and a
cap, like this (view in fixed font or M\$ Notepad):

 2/6 74C14
Servo In 200K
 ___ ___ |\ |\ Servo Out
o---|___|--o-|___|--o--|H>O--|H>O-----o
 20K | A | |/ |/
| | | about 1ms delay
 | | ---
'---' ---
 .01uF|
|
 == GND
created by Andy´s ASCII-Circuit v1.24.140803 Beta
www.tech-chat.de

The built-in hysteresis of the C14, along with the R and C, act
as a digital delay line. Your 0 to 1 logic transitions will be
delayed almost exactly as much as the 1-to-0 transistions.

This is because the hysteresis of the 74C14 (and the 74HC14) is
centered on 1/2 Vcc. This doesn't work for the 7414, 74LS14,
and other TTL versions of this chip for several reasons.

Once you know the right value for your application, just
substitute a fixed resistor for the pot, and you're good to go.

Good luck
Chris

I'll add some 74C14 to my Mouser order. Thanks.

Ben

--

J

#### John O'Flaherty

Jan 1, 1970
0
Geir said:
Ok, forget that. What about using a delay line, such as those used in older

Now the only thing i cannot help with is the pinouts for such one thing and
the delay it provides...

I think those things were in the microsecond range, and weren't really
for clean digital signals. You'd probably have to use some active
circuit like a one-shot to get to the millisecond area.

S

#### [email protected]

Jan 1, 1970
0
On Semiconductor still shows dual 64 bit shift registers. Stack up 512
bits, clock at 500KHz and get 1mS delay with 2 uSec resolution. Or, did
someone say PIC?
GG

K

#### Kitchen Man

Jan 1, 1970
0
I think those things were in the microsecond range, and weren't really
for clean digital signals. You'd probably have to use some active
circuit like a one-shot to get to the millisecond area.

I remember using crystal delay lines, and you're right, they were in the
microsecond range and were used on RADAR synchronizers. I've seen them
in ATE, as well.

There are sophisticated trigger delay devices available, but such things
are costly. Depending on the OP's budget on building this
servomechanism, I would highly recommend using one. You feed the
trigger signal in, and can tap off one or more programmable delays. If
you get one with one output for each servo (or if your sync signal is
one of the servos), you can digitally program each one separately. The
digital alignments and separate synchronization should make a well
behaved machine.

K

#### Kitchen Man

Jan 1, 1970
0
On Semiconductor still shows dual 64 bit shift registers. Stack up 512
bits, clock at 500KHz and get 1mS delay with 2 uSec resolution. Or, did
someone say PIC?

I don't think there's a system clock involved. The delay has to be
triggered by the event that is to be delayed. Have I got that right?

S

#### [email protected]

Jan 1, 1970
0
Not what I had in mind, no. The OP wants a delay on both the leading
and trailing edge, I.E. maintain the original pulse width, just delay
it. Think of this as a 1 bit digitizer and the shift register is the
memory. If your clock is good, no temperature variations, very
predictable and pretty simple. Take the output from different bit
counts and/or vary the clock rate for different/multiple delays.
GG

J
Replies
13
Views
3K
Andrew Gabriel
A
Replies
17
Views
704
Replies
3
Views
434
Replies
12
Views
2K
Replies
31
Views
2K