element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Arduino
  • Products
  • More
Arduino
Arduino Forum Common cathode or common anode leds
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Arduino to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 12 replies
  • Subscribers 420 subscribers
  • Views 1814 views
  • Users 0 members are here
Related

Common cathode or common anode leds

e14 Contributor
e14 Contributor over 13 years ago

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.

  • Sign in to reply
  • Cancel

Top Replies

  • mcb1
    mcb1 over 13 years ago in reply to johnbeetem +1
    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…
  • billabott
    0 billabott over 13 years ago

    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.  image Why is that Prof. Nico?  image

     

    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    image  Isn't that marvelous! image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Problemchild
    0 Problemchild over 13 years ago

    The warm fuzzy feeling comes from attching common points to ground (grr must attach to ground image ) 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.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • mcb1
    0 mcb1 over 13 years ago

    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

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • johnbeetem
    0 johnbeetem over 13 years ago

    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.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • mcb1
    0 mcb1 over 13 years ago in reply to johnbeetem

    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

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • e14 Contributor
    0 e14 Contributor over 13 years ago in reply to billabott

    Thank you so much for the valuable information.

    john

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • e14 Contributor
    0 e14 Contributor over 13 years ago in reply to mcb1

    Thank you so much for the valuable information.

    john

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • e14 Contributor
    0 e14 Contributor over 13 years ago in reply to johnbeetem

    Thank you so much for the valuable information.

    john

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • e14 Contributor
    0 e14 Contributor over 13 years ago in reply to Problemchild

    Thank you so much for the valuable information.

    john

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • billabott
    0 billabott over 13 years ago in reply to Problemchild

    I would hope they have or can get some hex inverter chips.  What a pain routing possibly 6 control lines thru that one chip.  You know that there are all kinds of ways to do it.  image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube