I have used this arrangement :-
Use onfwd command to select one relay or onrev for the other followed by wait then off to stop the current and release the relay (non-latching of course).
Bit of a guess as to the wait period for focusing since you don't know how long the camera will take. I am using 2 seconds at the moment. I allow 0.25 seconds for the shutter and that seems to work (so far!).
The relay voltage should be between 3 & 6 v imho since a 9v relay might not be reliable once the battery runs down.
You can use the batterylevel command in NXC or Guy Viv's NXT-G battery level block to find the actual voltage at any time. Then factor it down to get the motor power setting by 100*relay voltage/actual voltage. I reckon there will be a voltage drop of about 0.7v across the diodes so set the relay voltage at 6.7v for my 6v relays.
Any single pole non-latching relay should work but I have read that reed relays can affect each other if too close so I avoided these.
The remote cable I bought had no resistor in it, just a simple switch but I added one just to be on the safe side.
There is a ready-made version available at
http://www.techno-stuff.com/relay.htm
The code I use is :-
focus_power = 100*focus_volts/BatteryLevel(); // Factor down voltage
shoot_power = 100*shoot_volts/BatteryLevel(); // Factor down voltage
if (focus == true) // Skip if auto focus not used
{
Wait (1000); // Wait for vibrations to cease
OnRev (OUT_C, focus_power); // Focus relay on Port C
Wait (focus_time); // Keep relay energised
Off(OUT_C); // Switch relay off
}
if (mirror == true) // Skip if mirror lock not used
{
OnFwd (OUT_C, shoot_power); // Mirror up - shoot relay Port C
Wait (shoot_time); // Keep relay energised
Off(OUT_C); // Switch relay off
}
Wait (2000); // Wait for vibrations to cease
OnFwd (OUT_C, shoot_power); // Shoot & drop mirror - relay Port C
Wait (shoot_time); // Keep relay energised
Off(OUT_C); // Switch relay off
Wait (2000);