3

I have 3 Nikon D300 cameras, each with a remote trigger release cable used to externally trigger the camera. Inside these cables are 3 wires, shutter, focus, and ground. The shutter and focus are always connected as I do not need to use the auto focus. When the shutter and ground cable are electrically connected the camera triggers. The cables are very sensitive and only need to lightly and briefly touch to trigger.

I have tested the wires with a volt meter and there is 5V across the shutter and ground.

Therefore I need the microcontroller (a Frdm kl25z (very similar to Arduino uno)) to create a short between the two cables. I do not want to use external components such as a relay or transistor for various reasons, although I'm starting to think it's unavoidable.

What I have done for now is connect the 5V shutter wires to the Vin (5V to 9V) pin on the kl25z, and the return wires on the camera to separate digital output pins on the kl25z. When this output goes high (5V) I assume the 2 pins become electrically connected, creating the short and triggering the camera.

The problem is that when I trigger one camera, they all trigger at the same time. I have noticed that the trigger is very sensitive, you only have to very slightly and briefly touch the two wires for it to trigger, so I think that when one camera triggers the noise is enough to trigger the others.

I considered opto isolating the 3 cameras, but I'm not sure where to wire them, or if this will even fix the problem. Is there a better way to trigger the cameras, or will I have to use the opto isolators?

Nick Alexeev
  • 37,739
  • 17
  • 97
  • 230
Blue7
  • 1,635
  • 6
  • 24
  • 33
  • A lot of these need to be made, so we'd rather not have to build a circuit with it. We don't have the equipment to manufacture PCBs and stripboard looks unprofessional. However if we need opto isolators then we'll have to make a circuit anyway. – Blue7 Aug 03 '15 at 17:43
  • Are you absolutely sure you're only triggering one output in at a time? Have you verified it with a logic analyzer? How much capacitance do you have across the microcontroller's power pins? Add some capacitance and see if that helps. – Nevo Aug 03 '15 at 18:03
  • In the code I have initiated all the pins but only told one to go high, delay, then low, so only that camera should trigger. I have no capacitance, apart from the intrinsic or built in capacitance, so I imagine it is small. Why, how will this help? It is powered by micro USB if this makes a difference. – Blue7 Aug 03 '15 at 18:16
  • The Camera and microcontroller are powered from separate supplys, as the microcontroller is powered from 5V (usb ac-dc adapter from the mains) and the camera 12V (barrel jack ac-dc adapter from mains). The 2 wires that I need from the camera have 5V across them when open, and the camera triggers when they are connected. There is also 5V between one of these wires and the metal casing on the camera, and 0V between the other and the casing. Because they trigger on a short there it is not clear to me which one to connect to ground, so I connected the 5V wire to Vin on the microcontroller... – Blue7 Aug 03 '15 at 19:01
  • ...as a kind of "virtual ground". I'm not sure if we could use the high Z mode as I need a short and not an open circuit. – Blue7 Aug 03 '15 at 19:03
  • Genius! I was just about to give up and order some optocouplers, but I really didn't want to have to need separate circuitry. Can I program the Kl25z pins to be pulled low (or not pulled high or low) from within the software? – Blue7 Aug 03 '15 at 19:29
  • And are you certain that when you pull the output pin low, that it will be electrically connected to the ground pin (so the cameras 5v and ground wires are connected), and this will not damage anything? Connecting 5v straight to a microcontroller ground sounds like it could damage something. – Blue7 Aug 03 '15 at 19:36
  • I've deleted my comments and made an answer, you should edit the useful details into your question. – tomnexus Aug 03 '15 at 19:52

1 Answers1

2

It's so sensitive because you don't have a reliable ground, so any interference, ground loop etc will trigger it.

The absolute best solution is to use opto-isolators. They guarantee no ground loop and other troubles and shocks. But if you want to try connecting things together...

I strongly suggest that you connect the ground (0 V) wires to the microcontroller ground.

Then connect each wire which floats at 5 V to one microcontroller pin. Now configure the pin as an input, no pull-up or pull-down. It should not trigger the camera. Then, when you want to trigger it, set the pin as an output and pull it low.

Look at your microcontroller datasheet, it is almost certain to have a high-Z mode, sometimes also called tri-state. If not, it might work to just keep the pin high.

It would be safer to use a 10 k resistor in series with the 5 V wire, but it might work ok without it.

tomnexus
  • 7,617
  • 3
  • 19
  • 35
  • Thanks for your answer. Can I just make sure, is it definitely okay to connect the camera 5v wire to a microcontroller pin and then pull it low? Because this is effectively connecting the 5v wire to the microcontroller ground, and 5v straight to ground sounds like it could damage something. – Blue7 Aug 03 '15 at 20:05
  • That is what the 10k resistor does. It helps protect the MC pin. Make sure you don't have any "floating" input pins to your MC too ie they are either grounded or pulled high as required. Otherwise you will get random results. – BenG Aug 03 '15 at 20:43
  • 2
    Well, you are shorting the wires together and not worrying... so no danger to the camera. But yes there is a small chance the camera produces so much current that it damages the micro. A resistor will help. Also what if the camera is on but the micro isn't powered, you don't want to pull up the micro from its input. @beng why worry about unused inputs? They may waste a bit of power if they toggle, but there's no other ill effect. – tomnexus Aug 03 '15 at 20:52
  • 2
    @tomnexus. You are technically correct but I believe it is always good practice to set your inputs(whether using internal pull up/down resistors or external means). Granted, modern MCs are more forgiving than a simple IC. Not specifically setting them can result in unexpected behaviour (eg one cycle they read high, the next low) and so a mistake in the code could seem to intermittently work. ( eg reading pin1 instead of pin0). – BenG Aug 03 '15 at 21:11
  • 2
    Yes Blue7, it sounds like this camera's "5v" wire is not a +5v power supply, but a signal line. Connect an ammeter between it and camera ground (will make it take a photo), and measure the current. It is likely very small, such as 1mA. – rdtsc Aug 07 '15 at 22:29
  • @rdtsc, yes the current is small. Also, I have just found out that the micro controller I am using (FRDM KL25Z) does not have internal pull doen resistors. Just pull up or pull none. Also, when the pins are set as an input they are in high z mode. Is there any way I can do this without pull down resistors (or external opto-isolators). – Blue7 Aug 10 '15 at 14:30
  • Set the uC pin as an input, and set it's output state to low. Then just toggle the pin between input / output. As soon as it goes low (output), the camera should snap a photo. – rdtsc Aug 10 '15 at 14:41