I'd like to use 7 segment leds and led arrays. Are there any pros and cons regarding using common cathode or common anode devices - ?
Thank you.
I'd like to use 7 segment leds and led arrays. Are there any pros and cons regarding using common cathode or common anode devices - ?
Thank you.
The main consideration is that NFETs a lot more efficient than PFETs because electrons move more easily than holes. I think it's a factor of 4, but that's relying on memory. I think the same is true of NPN transistors versus PNP transistors, but I don't think the difference is as dramatic. Since the NFETs are more efficient, they'll heat up your chip less than similar PFETs with the same amount of current.
What this means is that you usually want to use active-low GPIOs connected to LED cathodes rather than active-high GPIOs connected to LED anodes.
This was the common wisdom back when each LED segment needed 10 mA. With today's high-efficiency LEDs that only need a few mA it probably doesn't make much difference.
With a multiplexed array of LEDs you can probably drive each of the seven segments a-g with a GPIO, but you will probably need external transistors for each digit to switch the fairly large current if all segments are on simultaneously. If you use active-high GPIOs for a-g anodes, you'll need NFETs or NPNs for the common cathodes. If you use active-low GPIOs for a-g cathodes, you'll need PFETs or PNPs for the common anodes.
You can also use a decoder chip such as a 74xxx138 for the common cathodes. In this case you need active-high GPIOs for the a-g anodes.
John B is correct about the relative gain.
The other consideration for anyone doing switching, is the supply voltage.
You should never apply a voltage to an input that is higher that the supply voltage (unless specially designed for it)
So for the Arduino its 5v (or 3v3) at any input or output.
Using an NPN device means you supply the control voltage to the base (or gate) and it doesn't matter what the device voltage is.
For a PNP the emitter is connected to the device voltage and is dropped by 0.6v at the base, which connects to the Arduino pin.
If the device voltage is 12v, then suddenly you have 11.4v at the output pin.
It can end in tears unless the device voltage is the same as the Arduino....
mark
Thank you so much for the valuable information.
john
Thank you so much for the valuable information.
john