I have been working on a project to take high speed photographs of things like balloons popping.
I shoot in a completely dark room and use fairly fast shutterspeeds, but flash is what freezes the action.
I have a 2-sage trigger system using an Arduino. (I need to use a 2-stage system because my SLR takes about 50 MS to open the shutter after sending it a signal to do so - far too long to catch a balloon in mid pop.)
I have a photo gate trigger on the end of a straw and shoot a blow-dart through the straw. When the blowdart breaks the beam of the photo gate I turn off the LED light lighting the balloon, trip the camera's shutter (in "bulb" mode, which holds the camera shutter open as long as the contacts are connected) and then use a vibration detector to wait for the bang of the popping balloon. When I detect the pop I fire the flash, release the camera shutter, and turn the LED subject light back on.
I found this circuit:
...on David Houlding's electronics blog:
http://davidhoulding.blogspot.com/2014/02/high-sensitivity-vibration-sensor-using.html.
It uses both op-amps in an LM358.
It is quite sensitive. However, it's designed to send a logic level signal to an Arduino and have the Arduino trigger the flash.
I found in practice that by the time my Arduino code detects the change in state on the input line and pulls an output line high to fire the flash, the balloon is almost totally collapsed. (Apparently the edges of a popping balloon move at supersonic speeds, and that is the cause of the loud pop, so you need to act really fast to catch the beginning of the pop. I know how to write a very fast loop using Arduino register commands to detect the signal from the vibration detector, and use another register command to fire the flash. I have the code as optimized as I'm gonna get it.)
I therefore wired the output of the circuit directly to an opto-isolator, the phototransistor of which shorts the terminals of my flash and fires it. I also send the signal to the Arduino, which can then close the camera shutter and turn the LED light back on.
However, when I have the vibration circuit trigger the flash directly through an opto-isolator, my setup is sometimes triggering the flash several times while the balloon pops, creating overlapping ghost images.
The opto-isolator isn't really necessary for my flash because I know that it uses very low sync voltage, but some camera flashes put quite high voltages through their sync terminals (sometimes as high as 300 volts!) Using an opto-isolator is a good idea if anybody else uses this design. It also gives me a clean and easy way to short the flash sync terminals and keep the flashes positive and negative terminals isolated from the rest of the system.
I could use an SCR, but if I put a DC voltage through the SCR then it latches in the on position until I remove the voltage. That's OK for triggering the flash directly since it apparently removes the sync voltage after firing, but I need to both trigger my flash AND notify the Arduino that I detected a vibration.
I could try triggering an SCR to fire my flash and split the output of my vibration sensor to also send a logic signal to the Arduino, but I suspect the SCR's gate might sink too much current and prevent the Arduino from seeing the pulse.
There is a sample circuit in the CMOS Cookbook section on op-amps that responds to a "jittery" signal from a photocell by latching on for a full second and then turning back off.
(It's basically a long period monostable). I'd like to adapt my vibration circuit, which already uses a pair of op-amps, to latch the output high for several milliseconds after triggering, then reset and wait for another trigger.
I need the circuit to be as fast as possible. In this application every microsecond matters.
I know how to wire a monostable using a 555 timer, but have a feeling it would introduce too much latency to my circuit.
Can somebody recommend a circuit that is sensitive, fast responding, and latches it's output to the ON state for several milliseconds on each trigger event, ignoring jitter?
EDIT:
Folks, I have a couple of goals here. One is to achieve cool high speed photographs. The other is to learn more about electronics. A couple of people have pointed out that triggering my flash based on vibration may be "too late" to catch the early stages of a high speed event like a balloon popping. That's probably true, and I will probably switch to a pellet gun and use a ballistic sensor to calculate the trigger time. I'm still interested in knowing now to create a sensitive, fast-responding vibration sensor that sends out a single, multi-millisecond pulse for a single real-world event like a balloon popping or a squirrel jumping on a feeding station.