Weak IR LEDs

Hi,

I'm new to Arduino and electronics in general, so my question might be a little noob :blush:

I'm trying to make the usual camera remote control/intervalometer using an IR LED. The code and circuit work fine but the IR signal seems to be very weak. I can't take my Arduino a few feet away from the camera and expect it to take pictures. The signal won't reach the camera unless the IR LED is at least ~40 cms close (~15 inches)

I blame the IR LED I'm using, so my question is: What should I search for on an IR LED in order to get a powerful one that can interface with Canon cameras? (940nm wavelength)

Cheers!

What LED are you using at the moment?

Did you remember to set the pinMode to OUTPUT (I have to ask, because I can't see you code)

What LED are you using at the moment?

To be honest, I don't know :disappointed_relieved: I just bought a few IR LEDs from my local electronics shop (I didn't ask them for anything specific, just IR LEDs). That's why I want to know what I should be looking for. Is there any "power" value?

Did you remember to set the pinMode to OUTPUT (I have to ask, because I can't see you code)

Yes, I did. I don't have the sketch here with me (currently at the office) but it does work, in the sense that it triggers the camera.

IR emitters are often driven with pulses of around 100mA - we need to see the circuit.

I'd suggest testing with a bright red or white LED so you can see obvious problems, and either of those should get you a meter distance minimum. Once you get that working then you can switch to the infrared LED.

These receivers don't require "940nm" LEDs but rather that is just the optimal wavelength. But, y'know, premature optimization is the root of all evil.

Well, the circuit works. The camera shots a picture every 2 seconds.

Here's the sketch:

////////////////////////////////////
// Simplest test. IR + Canon camera
////////////////////////////////////

int pin8 = 8;
 
void setup()
{
  pinMode(pin8, OUTPUT);
}
 
void loop()
{
  /* ----- shutter! ----- */
  for(int i=0; i<16; i++) 
  {
    digitalWrite(pin8, HIGH);
    delayMicroseconds(11);
    digitalWrite(pin8, LOW);
    delayMicroseconds(11);
  } 
   
  delayMicroseconds(7330); 
   
  for(int i=0; i<16; i++)
  { 
    digitalWrite(pin8, HIGH);
    delayMicroseconds(11);
    digitalWrite(pin8, LOW);
    delayMicroseconds(11);
  }
  /* ----- end shutter ----- */
 
 delay(2000); //2seg
}

And here's the circuit as it is now:

I've tried without the resistor. Without the switch. Without both. With the resistor after the switch. Bigger resistors. Smaller ones... All of these tests worked, but the distance seems to be approximately the same.

Did you read reply #4?

I presume you do have the LED the right way round unlike the diagram? That ought to give 30mA or so, so reasonably bright, but
adding a transistor to boost it to 100mA peak pulses should increase the range somewhat. Making sure the modulation frequency is
spot on is also worth checking, thinking about it - 40kHz or 38kHz, or whatever it is...

I presume you do have the LED the right way round unlike the diagram? That ought to give 30mA or so, so reasonably bright, but
adding a transistor to boost it to 100mA peak pulses should increase the range somewhat. Making sure the modulation frequency is
spot on is also worth checking, thinking about it - 40kHz or 38kHz, or whatever it is...

Thanks, MarkT! I will give it a try! :slight_smile: :slight_smile: :slight_smile:

I presume you do have the LED the right way round unlike the diagram?

:~ yes!