Delay without affecting pulse width

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

Reply to
BR
Loading thread data ...

--
Can you provide a timing diagram to show what you mean or verbally
explain what you mean by "delay"?
Reply to
John Fields

John Fields wrote in news: snipped-for-privacy@4ax.com:

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.

Ben

Reply to
BR

"BR" skrev i melding news:Xns9612685AA1E27hatespam@216.196.97.136...

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 : )

Reply to
Geir Klemetsen

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.

Reply to
Andrew Holme

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.

Reply to
Andrew Holme

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

formatting link

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

Reply to
Chris

I assumed he meant this:

formatting link

--
Terry Pinnell
Hobbyist, West Sussex, UK
Reply to
Terry Pinnell

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.

-- john

Reply to
John O'Flaherty

"Andrew Holme" wrote in news: snipped-for-privacy@f14g2000cwb.googlegroups.com:

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

Reply to
BR

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.

snipped-for-privacy@comcast.net (replace 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.
Reply to
Robert Monsen

"BR" wrote

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.

Reply to
Anthony Fremont

"Chris" wrote in news: snipped-for-privacy@z14g2000cwz.googlegroups.com:

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

Ben

Reply to
BR

TTL-inverters

need

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

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

Reply to
Geir Klemetsen

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.

-- john

Reply to
John O'Flaherty

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

Reply to
stratus46

On Tue, 08 Mar 2005 23:29:46 -0600 in sci.electronics.basics, John O'Flaherty wrote msg :

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.

--
Al Brennan
Reply to
Kitchen Man

On 9 Mar 2005 21:02:25 -0800 in sci.electronics.basics, snipped-for-privacy@yahoo.com wrote msg :

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?

--
Al Brennan
Reply to
Kitchen Man

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

Reply to
stratus46

The clock doesn't need to be synchronized with anything. Free running would be fine. The 'downside' is a 2 uSec window with a 500 KHz clock. Use a bigger FIFO and faster clock for a smaller window. I got the impression from earlier posts that the exact timing wasn't critical. Think of it more like a crude 1 bit recorder/player. GG

Reply to
stratus46

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.