Jump to content

Navigation LED Lights with Beacon & Strobe Effect (Arduino)


Allan Bowker
 Share

Recommended Posts

I love a good nav light set but the budget sets are hard to make out in the day and the really good bright ones seem very expensive for what I would like to pay.

I've been on the lookout for a while now and stumbled upon others making their own with an Arduino programmable computer.

First of all you will need a little Arduino micro computer. These are easily available on eBay for around £3 including delivery. A search for 'Arduino Nano' will find plenty of them listed.
Arduino

Top view

Arduino

Bottom view

Arduino

Another view of the bottom of the board with a pencil to show some scale.


Download/install the drivers and Arduino programming software for your PC and before you know it, you can plug this board into your computer via a USB cable and start downloading code to it.

The Arduino software is easy to use and is provided with many sample programs to try and experiment with.


Link to comment
Share on other sites

If you want a copy of the code that I used, download it from here.

Arduino

My next step was purchasing some small and bright 1206 SMD LED's (again from eBay for around 25p each)

As you can see, they are very small and can be tricky to work on, so you may want to improvise with your own LED's at this point.

Arduino

To keep things lightweight I purchased some enamelled copper wire. This allows me to easily run wires around my model without the need to worry about threading relatively thick cables around smaller airframes. The enamel coating on the wire insulates against any short circuits.

The multicoloured jumper cables make it easy to connect to your Arduido Nano board and are listed on eBay for around £2

Arduino

LED's need a resistor on the positive anode leg of the light. I used these 100 Ohms 5% resistors (£1 on eBay).

Arduino

Solder a jumper wire to one end of the resistor and some enamelled wire to the other end of the restistor. Cover with heat-shrink tubing and this will help keep things tidy and easy to manage.

 

Nav light positions

Edited to correct resistor value...

Edited By Pete B - Moderator on 20/02/2016 21:10:49

Link to comment
Share on other sites

Almost forgot, if you have used my code in the thread abovt, the following pin-out data applies:

TX1 : Green Nav
RX0 : Red Nav
GND : Commom ground negative
D4 : White Strobe
D5 : Red Beacon
D6 : Red Beacon
D8 : White Strobe

Of course, these can be modified by changing the code uploaded to your Arduino

Edited By Allan Bowker on 30/01/2016 15:49:35

Link to comment
Share on other sites

Great blog, Allan.

I used some old telephone wire - from the days those things were 'wired' - as these are quite thin as well, but a bit 'heavier' than your wire, but maybe easier to get free.

I also used some magnet wire - the type to rewind small electro motors, but that could be the same use as your enamelled wire?

And yes, C++ code as quite easy to learn, as I could even manage it to build a 4x4 RGB led cube with an Arduino type (Atmega) processor.

Please keep on instructing us.

Hakuna matata

Chris

BRU - BE / CTR LED Control

Link to comment
Share on other sites

Just a thought, 10 ohm resistors seem rather low, and looking at your piccy, they would appear to be 100 ohm  (brown, black, brown). Even that seems rather low and looks to be above the max current for the leds.

You don't need the Arduino jumpers, those connectors are the same as servo extension leads.

Edited By Andy48 on 30/01/2016 19:36:05

Link to comment
Share on other sites

For some time now I've been making my own lighting sets using PICAXE 8M processors coupled with appropriate output devices to handle the current (PICAXE is maximum 30mA per channel). The advantage of your Arduino solution seems to be that they need no extra components (other than the resistors for the LEDs) or PC board.

For my strobes I use Cree XP surface mounted LEDs. They require a heat sink if on continuously, and can draw up to 1 amp, but I've used them in strobe mode for several years now without a failure -- subject of course to having the correct supply voltage and series resistor.

Link to comment
Share on other sites

Thanks to everyone for the comments.

Yes John, the LED's are very small but I can't look at them for long as they are so bright (a video camera cannot do them justice).

I haven't tried them outside yet on a 60 size aircraft, still waiting for the weather to calm down, however I'm confident that they will be bright enough for larger models. If not, then it's back to the drawing board for the choice of LED's but not the controller at least.

smiley I hope that others will be able to add to this thread in the future. Perhaps improved code or alternative LED's to use, etc.

Link to comment
Share on other sites

JohnP25: Good question John, an important point I seem to have missed.
The input voltage range is from 6v to 20v, although 7v is the recommended minimum. No USB cable is required to provide power as there are 2 power input pins on the board.

I run mine on a small 2S LiPo, although you could tap power from your flight battery or receiver. I like to err on the side of caution and go for a separate supply. You should only need a regulator if you are outside this voltage range.

Danny: Thanks yessmiley

Link to comment
Share on other sites

General notes on LEDs lads. Being a very small diode, common LEDs are mostly rated at 20mah. As a rule of thumb, the protective resistor should be approx 75 ohms per volt, thus 1k for 12 v, and 680R for 9v, and 470R for 6v. However, again as a rule of thumb, if you are experimenting with less common microchips (ICs) (integrated circuits), then almost no protection is needed, maybe 10R, as the chip outputs are commonly 10 - 20 manh, similar to the LED. You can of course amplify this very small chip output very simply.

Link to comment
Share on other sites

  • 2 weeks later...

Hi Allan, Sorry for the dumb question but I have only just started playing with my Arduino Nano board and am trying to get my head around the device. I cannot work out from reading through your sketch where you are feeding the channel outputs (PPM) from your receiver to o the Nano, so currently I have uploaded your the program to the Nano but only the two green LED's on the Nano board and the red/green navigation lights are lit fully, with the LED's D5 and D6 (strobe and beacon) dim and flickering slightly.

Sure it is a case of pilot error on my behalf but some assistance would be most appreciated.

Barry

Link to comment
Share on other sites

I'm fascinated by this, and have just clicked the Buy button for an Arduino Nano!

I've had a play with one of the Arduino simulator websites, and am struggling to match up Alan's code with the pinouts he quoted. Maybe I'm missing something (quite likely!) or he's changed the code or the pinouts he uses.

To me it looks like the signal input should be on D2, red and green navs on D5 and D6, the 'rotating' beacon on D3 and the two strobes on D7 and D8.

But please don't take my word for it. Let's see what Allan says!

Link to comment
Share on other sites

Hi John and Allan, Nothing on the TV, so I just tried your wiring configuration and bound up an old AR6100e with channel 5 (gear switch) signal output to D2 on the Nano and it all works now except for the rotating strobe which does not come on and the landing light still glows dimly when in gear up mode. I still have the nav lights on Tx1and Rx0 as D5 and D6 still have no output but some progress has been made!

Looking forward to seeing Allan's reply

Barry

Link to comment
Share on other sites

Hello guys, sorry for the delay...
I'm new to the Arduino myself, so this is a 'learning together' thread winkI'm always on the lookout for alternatives and improvements.

Despite being below the recommended minimum voltage (see my post from 8th Feb), I have the option to power my Arduino directly from the receiver to the ICSP header pins (marked PWR). Purple wire is positive and grey wire is negative. Otherwise a separate 2S LiPo can be used to isolate your lighting system from your receiver.

Power input from RX

Also from this photo, you should be able to see which pins I have my LED's connected.
Green - D8 - White Strobe
Red - D6 - Red Beacon
Orange - D4 - White Strobe
Black - GND - Common ground negative
Yellow - RX0 - Red Nav
Blue - TX1 - Green Nav

Although in hindsight, I guess l could have used just D8 for both strobes, D6 for beacons and perhaps D5 switched full on for both Red and Green Nav lights. Maybe next time?

Some more photo's to follow, I hope these help...

 

Edited By Allan Bowker on 21/02/2016 16:04:53

Link to comment
Share on other sites

Thanks Allan.

I still think I'm missing something though! You don't appear to have any signal input to the Arduino from the rx to switch the lights.

In your code you define LightSwitch as an integer with value 2 in this line;

int LightSwitch = 2; //Position 1 turns on Nav Lights, 2 turns on Landing lights. Rc channel 8

and then set the pin (port?) with value LightSwitch to INPUT in this line;

pinMode(LightSwitch, INPUT);

and later read the pulse length in this line;

LightSwitchValue = pulseIn(LightSwitch, HIGH, 20000); //times out in 20000 uS

However I don't see any signal connection from the rx, just the +ve and -ve power lines. Which pin would the signal connect to? I assume D2 (to match '2' in the code) but am not at all sure!

And your definitions of the pins (ports?) in the code for the various lights don't seem to match the pins you are using. Is there a mapping that I haven't yet found between the values used in the code and the physical pins?

From the code;

//Steady Lights
int LandingLight = 4; //White Turns on with second switch
int portNavLight = 5; //Red constant on
int starboardNavLight = 6; //Green constand on

//Revolving Light
boolean RevolvingLightSwitch = true;//Set to false if not using this feature
int RevolvingLight = 3; //Replicates revolving light (analog)
int RevolvingLighteInterval = 0;
int RevolvingLightDirection = HIGH;

//White Strobe 1
boolean WhiteStrobeSwitch1 = true;//Set to false if not using this feature
int WhiteStrobe1 = 7; //Flashes twice fast every second
long whiteStrobeTimer1 = millis();
long whiteStrobeInterval1 = 2000;
int whiteStrobePhase1 = 1;


//White Strobe 2
boolean WhiteStrobeSwitch2 = true;//Set to false if not using this feature
int WhiteStrobe2 = 8; //Flashes twice fast every second
long whiteStrobeTimer2 = millis();
long whiteStrobeInterval2 = 2100;
int whiteStrobePhase2 = 1;

it looks to me that the nav lights are on 4 and 5, strobes on 7 and 8, but this doesn't match what you are using. I'm confused!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...