# Working with a cathode-based LED seven-segment display

I have recently purchased an Arduino micro and am using it to learn more about electronics and embedded systems. I have a numeric LED display HDSP-H101 with the following circuit diagram, and I am trying to figure out how I can use the digital I/O pins on the Arduino to activate different segments of the display.

simulate this circuit – Schematic created using CircuitLab

If the diodes were oriented the opposite way, it would be a simple matter of connecting the output pins (and a resistive load) to each of the pins and the cathode to ground and then when the pin was set to HIGH a forward-bias voltage would be applied across the LED and it would light up. However, in this case a reverse-bias voltage would be applied and therefore I am unsure of the best way to selectively light each segment?

A simple common anode display like you have is just the opposite of a common cathode display. Just reverse (invert the logic). Connect the common pin to V+ (5v for a regular arduino), and each segment pin to an appropriatte resistor then to the arduino pins.

Since you are inverting the logic HIGH turns off the segment, LOW turns it on. The arduino pin acts like the ground. Simple.

Just keep in mind the arduino pin and port current limits.

Use an open collector inverter IC such as an SN74ALS05A (BJT based) or an open drain buffer like the 74LCX07 (FET based).

In such a configuration, you wire up a positive voltage supply to the common anode of the display then route each output through a current-limiting resistor and an output on the inverter or buffer IC. The current will flow through the internal transistors in the IC to ground, completing the circuit and lighting up the display segment.

Connect the middle pin on the top or on the bottom to 5v on the arduino.Make sure you use a current limiting resistor. And connect the other pins to the digital pins on the arduino. To light up a segment, just drive the pin low. In this case the pins would be sinking current. Just make sure the total current is within safe limits for the arduino.

• There should be individual segment resistors in each segment rather than a single one in the common pin, to avoid the current and light intensity fluctuation when a different number of led segments turns on. – alexan_e Mar 31 '14 at 13:36
• That makes good sense. Add individual resistors for each segment, rather than one at the common pin. +1 – emperor_penguin Mar 31 '14 at 19:51