I have been looking for a solution for this for hours and have posted on the Arduino forums but posting here also in the hope I can get some different views on the topic.
I don't want to use addressable LED's as I'm trying to learn more about analogue electronics via this project and not just hacking something together 'maker style'.
I have to drive about 60 red/green LED's (34 in the first round of the project) and the ones I can get here in Australia are the two lead inverse parallel bi-color (actually called bi-colour over here ) type.
I have seen a stack of responses for this problem stating I should use a NPN transistor and a voltage divider circuit, but in all of these I can see the drive voltage being shunted to ground through the the voltage divider when one of the LED's is off (ie. all of the time) and this seems like a waste of power to me.
I found an article written some time back that proposes this circuit and would like to give it a go as it has very little quiescent current drain.
Can anyone please shed some light on how this works and maybe propose some components (I can't source the BSS101 or BAS15 here in Australia) that I can use to prototype this.
I don't want to use addressable LED's as I'm trying to learn more about analogue electronics via this project and not just hacking something together 'maker style'.
I have to drive about 60 red/green LED's (34 in the first round of the project) and the ones I can get here in Australia are the two lead inverse parallel bi-color (actually called bi-colour over here ) type.
I have seen a stack of responses for this problem stating I should use a NPN transistor and a voltage divider circuit, but in all of these I can see the drive voltage being shunted to ground through the the voltage divider when one of the LED's is off (ie. all of the time) and this seems like a waste of power to me.
I found an article written some time back that proposes this circuit and would like to give it a go as it has very little quiescent current drain.
Can anyone please shed some light on how this works and maybe propose some components (I can't source the BSS101 or BAS15 here in Australia) that I can use to prototype this.
Using discrete components, another circuit offers an inexpensive approach that avoids the other circuits' disadvantages (Figure 3). When the microcontroller's output port goes high, current flows through the green (upper) LED, R2, D2, and FET Q2, which the port's high level turns on. When the microcontroller's output port goes low, transistor Q1 turns on and delivers current to the port pin through R2 and the red (lower) LED. The circuit operates symmetrically because silicon diode D2's forward-voltage drop is present regardless of whether the microcontroller's port pin goes high or low. VCC may vary during operation but must remain higher than 3V.
You can individually adjust the LEDs' currents to equalize brightness or compensate for a difference between the microcontroller's power-supply voltage and the LED-driver circuit's VCC. Replace R2 with two resistors connected in series between Q1's emitter and D2's anode. Connect the midpoint of the two resistors to the LEDs.
With the microcontroller's port pin configured as an "input with pullup," the port delivers a small current to the green LED. However, pullup-resistor values of 22 kΩ or higher do not cause misleading light output from LEDs in the off-state. When the input signal from the port pin floats--that is, with VCC at 5V and the port configured as an input with no pullup resistor--the circuit draws no additional current, and the quiescent current, which R1 determines, averages less than 100 µA.