ideas to make a variable pulse width longer

GroupDIY Audio Forum

Help Support GroupDIY Audio Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

bachevelle52

Active member
Joined
May 23, 2009
Messages
43
Hi guys,
I'm very excited to see "higher logic" in the forums. I'm tinkering on a project for a friend and as a function of some industrial process he has a need to be able to make a pulse longer in duration. I don't know as of yet how much longer but I'm assuming in the millisecond range. He did tell me he see maybe 300 pulses a second at full production speed.
I considered a simple "one-shot" type of solution, utilizing a falling edge trigger but I've never dealt with this style circuit before so I don't know if that will work. Looking over the data sheet, I don't believe the 555 is fast enough.
    So, just for clarification, this would be the objective:
1. He sees up to 300 pulses a second, pulses vary in length.
2. I need to be able to make each pulse longer by the same amount. (example) he sees a 2 mS pulse followed by a 2.4 mS pulse. We want to add an additional mS to each pulse so our output becomes a 3 mS pulse followed by a 3.4 mS pulse.
Anyone have a simple idea that I'm not seeing? Any advice would be appreciated!
 
bachevelle52 said:
Hi guys,
I'm very excited to see "higher logic" in the forums. I'm tinkering on a project for a friend and as a function of some industrial process he has a need to be able to make a pulse longer in duration. I don't know as of yet how much longer but I'm assuming in the millisecond range. He did tell me he see maybe 300 pulses a second at full production speed.
I considered a simple "one-shot" type of solution, utilizing a falling edge trigger but I've never dealt with this style circuit before so I don't know if that will work. Looking over the data sheet, I don't believe the 555 is fast enough.
    So, just for clarification, this would be the objective:
1. He sees up to 300 pulses a second, pulses vary in length.
2. I need to be able to make each pulse longer by the same amount. (example) he sees a 2 mS pulse followed by a 2.4 mS pulse. We want to add an additional mS to each pulse so our output becomes a 3 mS pulse followed by a 3.4 mS pulse.
Anyone have a simple idea that I'm not seeing? Any advice would be appreciated!

Well, perhaps "simple" is the in eye of the beholder, but I seem to have to do this sort of pulse-stretching all the time (triggers and so forth). Of course I do it in an FPGA as part of a larger system.
 
I suppose by simple, I meant discrete. I have a propeller board I built, I could do it with that, just thought/wondered if there was a sneaky way to avoid programming which I'm not great at. Wondered if it would be possible to charge a cap and get the extra time with the discharge. Or come up with a dreadfully slow switching transistor and find just the right bias point to saturate and switch off at the tail end of the signal pulse. If that makes any sense.
 
I think the way to do it would be to build a positive going waveform detector, and then simply use that to drive a simple pulse generator of the length you require.
The negative going pulse is then ignored (or invert that logic obviously depending on application and polarity) - allowing you to shape the result as required.

I think that would be the easiest option.
 
bachevelle52 said:
.........................
So, just for clarification, this would be the objective:
1. He sees up to 300 pulses a second, pulses vary in length.
2. I need to be able to make each pulse longer by the same amount. (example) he sees a 2 mS pulse followed by a 2.4 mS pulse. We want to add an additional mS to each pulse so our output becomes a 3 mS pulse followed by a 3.4 mS pulse.
..............


It would be good to know what the process is exactly.

Also are the on and off times equal in length? As there can easily be a condition that your output never turns off.

For example.

2mS on and 2mS off.

First pulse of 2mS arrives at the input.

Another 1mS is added and the output is turned on for 3mS.

1mS before the output turns off the second pulse of 2.4mS arrives at the input. Output stays on unless the second pulse is ignored.
 
Okay, this is what I know. He manufacturing something, didn't ask...don't care. The parts move along a conveyer, pass under an optic sensor. The sensor sends a signal the the control computer, which counts them and sends a ground return signal to fire a solenoid on the next machine. Whatever he's making now is shorter or smaller that what the machine was set up for. He still gets an accurate count, but the timing pulses are not long enough to trigger the next process. Currently he's running at half production speed and triggering the next machine manually.
    I do not believe the pulses are equally spaced, and his math was wrong. I recalculated, and he would see no more than 15 items per second, if he ran the machines as fast as he could. So, seemingly all we need to add is a mS or so to the pulse. That's why I wondered if I could just charge a small cap with the pulse and get my extra time with the discharge.
    I though also, I could use a non-retriggerable falling edge triggered flip-flop. And I suppose if it did oscillate, I could wire up a transistor or a relay to interrupt the "enable" input so it wouldn't hear itself.
 
The optical sensor is probably a light beam and photo transistor, so when the part comes by it breaks the light beam and causes the optical detector to go open circuit, then when it gets light again the detector goes low impedance.

To make the pulse longer by some fixed amount could be pretty simple. While adding a capacitor could slow down the pulse, it is probably helping in the wrong direction (it would make the open time even shorter, and still close too fast.)

Without knowing the exact devices in use, I can only speculate. You want to slow down the signal when the light beam is not broken  (probably an optical transistor pulling down a resistor). This could be as simple as adding a resistor  with a diode across it, so it is not delayed in the direction when the light beam is broken, but is delayed when light beam is active.

This also ASSumes, the input impedance following this is high impedance, It may not be.

These optical detectors and control interface are probably off the shelf parts, so getting part numbers might help you find a solution.

JR
 
 
bachevelle52 said:
Okay, this is what I know. He manufacturing something, didn't ask...don't care. ....

I do not mean to offend but you are wrong with that attitude.

What sort of a device has he got that it can not detect 2mS pulse? If he has got a high speed manufacturing system that is pretty slow. 

I have a feeling that the problem is not really detecting 2-3mS pulse but the mechanical device which has to respond to it is slower. So,  what makes you think stretching it by another 1mS will solve the problem without knowing what the pulse is supposed to control?

If the receiving device is indeed very slow then you should perhaps be looking into like 10mS or greater, and  based on the 15 object per second you have sufficient off times to accommodate it. Of course, assuming that nothing goes wrong and no two objects are dropped too close to each other.

Otherwise, charging/discharging a cap will certainly do the trick.

 
Thank you for all of the responses, I appreciate the fact that you are trying to help me with this. The issue with my attitude on this isn't that I'm trying to take any of this for granted. It really doesn't make any difference to me what he's manufacturing, he's 2500 miles away from me and the machinery was custom built 25 yrs ago for the original owner.
 
Either it's worth doing or not... Anything worth doing is worth doing right.

If its very old it is even more likely to be using simple basic sensor technology.

300 max rep rate leaves 1/300 sec cycle time or period of 3.3 mSec total... So you never can exceed 3.3 mSec or it's no longer cycling.  Stretching pulses a fraction of a mSec seems doable with low tech passive R, C, diodes, ? You still need to determine actual mechanics of the sensors to know how to trick them a little longer as my guess is this would involve steering diodes to operate opposite the natural circuit impedances.

Is your friend capable of simple VOM measurements?

It would be useful to know output state of things.
-----------

Note: For a modest amount of pulse stretching you might place the light beam/sensor at an angle to the object path intercepting the beam at other than 90'. The amount of pulse stretch available from this depends on the part geometry (width normal to the detector path). 

JR



 
 
Okay, I called my buddy back for some clarification. He says the production rate is dependant on the casting rate. Full speed, he can't produce more than 15 trays per second, I assume its a batch limit. The trays are plastic and injection molded. I asked if he was sure that the pulse duration was the culprit. He told me the "trays" they are running now are about half as long as the normal product. Otherwise, they are identical. He told me that he placed a long, short, then long tray on the conveyer and the two long trays triggered the next machine... Which he said was "a packaging thing". I asked if he was sure there wasn't a sensor in the tray at the end of the conveyer, so he went over and dropped a tray into the machine feed and it did not trigger. Also, it seems now as though there isn't one master computer operating the system, but a collection of sub circuits and sensors.
Bringing me to this point: I don't need to delay the signal, the timing of the signal doesn't even need to be that precise. He doesn't want to play with moving the sensor for fear that it will cause more problems later. I don't have and exact pulse length at this point, I'm again assuming that its relatively short and I need only make it half again as long.
He contacted the former owner, got contact info for the man who set the machines up only to found that he died a few years ago. I sincerely am not trying to be snotty, and I do greatly appreciate all of the inside provided by prodigy pro. It's probably obvious, I'm not an engineer, nor an electrician. I drive a truck for a living. I'm not being paid for my time on this, I went to high school with this person. It's frustrating at times because I'm truely fascinated by electronics and I try to read and tinker as much as i can. I just don't have tons of free time these days. Thanks again to everyone who has offered an opinion. I realise I've put the wagon in front of the horse on this, not even knowing what lengths I'm dealing with. I was just trying to brainstorm some ideas to be further along when I get more info.
 
No problems. The main purpose of hanging around this forum is to exchange ideas.

We now know that the injection moulded trays are transported from the moulding machine to the packaging.

Each time a tray passes by the sensor the packaging machine is triggered.

Multiple controllers are operating and the response time between the two machine is much greater than the minimum pulse width that the tray detecting sensor can produce.

Ask your friend what the sensor on the conveyor belt is and what is connected to the output of it. It is probably a standard opto sensor with either PNP or NPN output. It is also possible that the (late) installer gentleman had simple mechanical relay on the output to interface it to the packaging machine. The reason that I am saying that is because most engineers without deep involvement in electronics choose relay output as it is easier. Or it might be that the input to  the packaging machine also required a simple relay contact.

If this is the case then replacing this relay with a level translator using a couple of transistors will give you many miliseconds you require. You won't need no pulse stretching.

 
We used to get penalized for using one-shots in our advanced discrete digital design classes; some types of capacitors will age and change their capacitance values (and thus time constant) or will be temperature sensitive and change their Farad values...  Just plain unreliable...

I would just use a 74** counter that counts up when initially triggered and when reaches the defined count (pulse stretched time value) then cause the now stretched pulse to go "de-asserted" (and reset the counter)...

Use can use a NAND and some other basic logic to block/mask additional pulses during the pulse stretching time frame...
 

Latest posts

Back
Top