1

Hi I have 50 camera devices I want to program. Luckily the camera devices have a param.xml file I can import. I have already loaded the param.xml file on each of the camera devices however, now I need to import the param.xml file.

The devices work on IR waves, Usually I would have to import the params on each individual device with a remote but I decided to try and create a neat project where I would attempt to program all of the devices at once using an Arduino.

I would like to buy 50 IR LEDs, make small booster circuits for each LED and then point each one too the receiving module on the camera devices. All the Signal wires would be connected to Arduino pin 3.

I am mostly concerned about all the signal wires connected to Arduino pin 3. is there perhaps some kind of circuit I can use on pin 3 to ensure that this project will work perhaps someone Knows of a better way or has some advice?

Any suggestions will be appreciated.

I am not worried about power because I will connect the IR LEDs + & - to an external Power supply with adjustable current and voltage.

Booster Circuit:

Link To IR Led Datasheet

Link To Transister Datasheet

schematic

simulate this circuit – Schematic created using CircuitLab

This is the code I am using with an Arduino Uno and I have tested it with the IR booster circuit and it does work.

#include <IRremote.h>

IRsend irsend;

void setup()
{
}

void loop() {
    for (int i = 0; i < 3; i++) {
        irsend.sendNEC(0x1067E21D, 32); // Login
        delay(1000);
        irsend.sendNEC(0x106722DD, 32); // Password Digit 1
        delay(1000);
        irsend.sendNEC(0x106722DD, 32); // Password Digit 2
        delay(1000);
        irsend.sendNEC(0x106722DD, 32); // Password Digit 3
        delay(1000);
        irsend.sendNEC(0x106722DD, 32); // Password Digit 4
        delay(1000);
        irsend.sendNEC(0x106722DD, 32); // Password Digit 5
        delay(1000);
        irsend.sendNEC(0x106722DD, 32); // Password Digit 6
        delay(1000);
        irsend.sendNEC(0x10676897, 32); // Down Arrow 
        delay(1000);
        irsend.sendNEC(0x10676897, 32); // Down Arrow 
        delay(1000);
        irsend.sendNEC(0x10676897, 32); // Down Arrow 
        delay(1000);
        irsend.sendNEC(0x10676897, 32); // Down Arrow 
        delay(1000);
        irsend.sendNEC(0x10676897, 32); // Down Arrow 
        delay(1000);
        irsend.sendNEC(0x10676897, 32); // Down Arrow 
        delay(1000);
        irsend.sendNEC(0x10678877, 32); // Right Arrow 
        delay(1000);
        irsend.sendNEC(0x10676897, 32); // Down Arrow 
        delay(1000);
        irsend.sendNEC(0x1067A857, 32); // Enter 
        delay(1000);
        irsend.sendNEC(0x1067A857, 32); // Enter 
        delay(1000);
        irsend.sendNEC(0x10678877, 32); // Right Arrow 
        delay(1000);        
        irsend.sendNEC(0x1067A857, 32); // Enter 
        delay(1000);
    }
    delay(5000); //5 second delay between each signal burst
}
5
  • Do you want to control all 50 of them at once?
    – Divisadero
    Commented Dec 7, 2016 at 13:27
  • 2
    If your Vcc is not an LED driver (constant-current source), you will likely want a current-limiting resistor of at least 200Ω. The datasheet you linked to shows a voltage drop of about 1.2V and a current draw of nominal 20mA V/A=R => (5V - 1.2V) / 0.020mA =>190Ω Commented Dec 7, 2016 at 14:11
  • If you are using a separate power supply, make sure you connect the grounds.
    – Gerben
    Commented Dec 7, 2016 at 15:29
  • Do they all need to receive the same commands? Since you're thinking of only using pin 3.
    – aaa
    Commented Dec 9, 2016 at 7:40
  • @Paul: Yes, however If I can get the Arduino Mega to send signals over 50 pins or at least 25. Then I reckon that would be a significant upgrade compared to my initial question because I will be able to send each camera device a different command or I'll be able to send each device the same command depending on what I want to do with the camera devices.
    – Jonas
    Commented Dec 9, 2016 at 14:35

1 Answer 1

5

You should put a current-limiting resistor in series with each LED. You could then try to drive all of those LEDs from a beefy transistor, like a power MOSFET or a Darlington. Alternatively, you can use a small transistor for each LED, and then drive all of them from a PNP transistor, like this:

schematic

simulate this circuit – Schematic created using CircuitLab

This way, if you want to drive some of the LEDs independently, you can just connect an Arduino pin to its R2.

Beware that the PNP reverses the logic: pin LOW turns the LEDs ON.

3
  • Re “drive all of those LEDs from a beefy transistor, like a power MOSFET or a Darlington”, using an inexpensive Arduino-compatible motor-driver board or shield would also work, although some of them might be challenged when trying to switch at IR data rates Commented Dec 7, 2016 at 20:43
  • @Edgar Bonet I'm just curious, would an Arduino Mega be able to drive each of my 50 IR LEDs individually, Since it has 50 pins?
    – Jonas
    Commented Dec 8, 2016 at 14:21
  • 1
    @Jonas: Looking at the datasheet of the ATmega2560 (p. 356) it would seem it can source up to 800 mA (3 pin groups @ 200 mA per group and 2 groups @ 100 mA). You should check the mapping of the AVR pins to the Arduino pins and make sure you do not exceed any of the group limits. You should also probably use an external power supply, rather than USB, and check that the voltage regulator does not get too hot. Commented Dec 8, 2016 at 14:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.