Problems with timing outputs from two ports

My apologies in advance, since there is probably a very simple answer to this, but as a newbie (to Arduino) I'm very frustrated. I'm trying to control a photographic strobe unit, which uses a TTL (Through-the-lens) control. Essentially, you have two contacts and a ground. Shorting the first contact to ground fires the strobe, shorting the other (the quench pin) to ground quenches the strobe flash. Thus you can alter the amount of light being emitted. Both circuits are thyristor protected inside the strobe so the voltages on the interface are no more than 1-2 volts and I'm using the outputs from two arduino pins (13 for fire, 8 for quench) to drive opto-isolators (two channels of an ILQ74) just for safety.

OK, on full power (i.e. no quench) the flash duration is about 5mS after which it decays over about 2mS.

Relevant code is: digitalWrite(CAMERA_FLASH_PIN, HIGH); delayMicroseconds(500) digitalWrite(CAMERA_QUENCH_PIN, HIGH);

Now call me naive, but I figure this should fire the strobe (which it does), and then 500uS (or thereabouts) quench it (which it doesn't!). As far as I can tell, the quench never happens (at least not until after the full 5mS flash has occurred.

As I say, I'm probably doing something really stupid (both pins are defined as outputs) but it is frustrating me no end.

Any suggestions, observations or just good old fashioned insight?

I'm messed around for years with PICS (assembler - hard work), PICAXE (easy, but not fast enough for this type of thing). I really love the whole Arduino concept, but this is a real frustration!

Thanks in advance


What hapens if you take the trigger (FLASH_PIN) low before setting the quench?

   digitalWrite(CAMERA_FLASH_PIN, HIGH);
   delayMicroseconds (5);
   digitalWrite(CAMERA_FLASH_PIN, LOW);
   delayMicroseconds(495);  //whatever
   digitalWrite(CAMERA_QUENCH_PIN, HIGH);

I have Vivitar 283s, which I fire with MOC3020 optotriacs, but no external quench, but the trigger takes a pulse of only a couple of microseconds.