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 specs for the uC will tell you the max. current a pin can sink or source. Also consider the max. total current for the chip.
There is an interesting 8 pin latch/buffer chip (see note 1) used by the 2x16 parallel LCD vendors on ebay so that it becomes a I2C Serial LCD. It seems to me that one of those would be very useful in your project unless you are looking for a total low current circuit. If you understand multiplexing and I hope you do, you can use one of each of the common types (cathode/anode). A single bit (see note 2) will let you toggle between the two 7-segment leds (the hex alpha numeric ones, right?). For instance, loading the latch with 0xxx-xxxx (binary) will light up one display's segments corresponding to the bit pattern xxx-xxxx. Likewise, loading the latch with 1xxx-xxxx will light up the other display's segments corresponding to the bit pattern xxx-xxxx (see note 3). I think it is correct to say that you will need 1 resistor for each of the output pins of each buffer chip. The 7 pins of the latch/expander form a "bus" with the two segment led displays listening but only changing state when directed to by the toggle bit. Required refresh rate is 60 Hz (cycles per second). Easily managed by most uCs.
Note 1: http://www.taydaelectronics.com/datasheets/A-905.pdf
Note2: The toggle bit needs to control the correct N (2N3904) or P (2N3906) type transistors to connect the "common" pin of each display to the appropriate power rail. This approach solves a problem with unequal brightness between different segments and/or characters.
Note 3: One of the displays will require that its bit pattern xxx-xxxx be sent out as 1's complement representation.
Why is that Prof. Nico? 
Special Note: Remember: The I2C bus you define from the uC to the expander(s) CAN control more that one!! The 3 bit address of each expander chip is defined by how its pins 1-3 are connected to Vcc or Vdd individually. ie 000 to 111
Isn't that marvelous!
The warm fuzzy feeling comes from attching common points to ground (grr must attach to ground
) which equates to common Cathode.
However if you are switching the LEDs on with a FET then most likely that will be N Channel and the most sensible configuration at this point is to switch the low side of the device which would require a common Anode.
Both exist for a reason, the final decision is dependant on your design or what stock you have. If some one else has just ordered 100K Comon Anode devices then you will probably be wanting to use these to reduce stock and BOM costs.
John de B
Common anode allows you to switch the individual leds to ground, hence simple NPN transistors.
This allows you the option of controlling the voltage applied to the anode and hence the final brightness of all leds very simply.
Depending on your controlling hardware, it can also simplify the code ie output HIGH is led ON.
As john said it depends if you have access to an existing supply.
Be aware that switching seven segment leds can create electrical hash. Just try a radio next to a bedside clock that uses 7 seg leds....
Mark
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
Thank you so much for the valuable information.
john
Thank you so much for the valuable information.
john