This project is an improvement to my previous Lync status light, built back in May 2016. It worked fine, but it only had three 5 mm LEDs. People who knew about the module noticed, but many people didn’t, so it did not have the effect I was looking for. That’s why I decided to upgrade it, and this time use bigger and brighter lights!
I found a pair of maritime navigation lights on eBay that were small enough to fit on the top of the enclosure. They are much harder to miss than the LEDs :) I still use the same Arduino firmware and bridge software as before, just upgraded the hardware.
Table of contents
The yellow LED only uses about 20mA, so this can be connected and powered directly from the Arduino board. It does a need a resistor, the size of this resistor depends on the LED. I used 150 ohms.
The navigation lights, however, use too much current for the Arduino to handle, so it needs a little help. The Darlington ULN2003A driver can handle 500mA on each output, and it has a 2.7 Kohm resistor on the inputs, which makes it perfect for this kind of application. Just connect the output of the Arduino to the input of the Darlington driver, and ground for the load to the Darlington outputs.
When I first started, I figured I would use an optocoupler to separate the USB and adapter grounds. I ended up not doing that, but the 16 pin DIL socket is still soldered to the board, as you can see on the images above.
The Arduino itself and the yellow LED is powered through the USB connection; this is not a problem as long as the total current is below 400 mA. However, the navigation lights use 12 volts, so for that, we need an AC adapter. I chose a 330 mA adapter since my red and green lights are not lit at the same time, if they were I might have to get a bigger one.
I did not do any changes to either the Lync bridge nor the Arduino sketch. Here is what I originally wrote about the software on the previous Lync lights post:
Now; we need to let this device know about our Lync status somehow. Otherwise, it’s not going to do much good. Luckily and thanks to the power of open source; someone had done a lot of the job for us already. I found a project on GitHub that used a blink(1) to show the Lync status. That made my task a lot easier; I love open source!
- D3 Green LED
- D5 Yellow LED
- D6 Red LED
I used these output because they are PWM, pulse-width modulated, meaning that the brightness of the LEDs can be controlled. Because the navigation lights are so bright, I chose to turn down the green one to about 5%. It’s still plenty bright enough, the red one however I am keeping at 100% to maximize the visibility.
- 1 × AC adapter, 12 V=, 330 mA, 2.1mm jack, SMPS
- 1 × Arduino Uno R3, ATmega328P, A000066
- 1 × Darlington-driver, 7 step, ULN2003A, DIL16, In: 2.7K/5V
- 1 × DIL socket, 16-pin, 7.62mm
- 1 × Enclosure, plastic (1591 FL), 120x65x40mm, flange
- 0.1 m × Heat-shrink tubing, 2.4 mm, 2:1, clear
- 1 × LED 5mm clear, Yellow, 2.1V, 20mA, 10.000mcd, 20°
- 1 × LED holder 5mm, Chromed metal
- 1 × Navigation light, Green, LED, 12 V, stainless steel
- 1 × Navigation light, Red, LED, 12 V, stainless steel
- 18 cm2 × PCB, stripboard, 100x160mm, 160cm2
- 1 × Power jack, panel, 2.1mm, plastic housing
- 1 × Resistor, carbon film, 0.25W, 150 Ω, 5%
- 4 × Rubber foot, adhesive, SJ-5012, Ø 12.7x3.5 mm
- 4 × Spacer, round unthreaded, 3mm, Ø6mm, Delrin
- 7 × Straight pin header, male, Single row, 2.54mm
- 3 × Terminal block, screw, 2.5 mm
- 0.3 m × Wire, stranded, 0.22mm2, Black
- 0.2 m × Wire, stranded, 0.22mm2, Green
- 0.3 m × Wire, stranded, 0.22mm2, Red
- 0.1 m × Wire, stranded, 0.22mm2, White
- 0.1 m × Wire, stranded, 0.22mm2, Yellow