# 10 segment bar graph array as 10 pixel Arduino Due display?

Hi,

instead of using resistors I connected 10 segment bar graph array directly to Arduino Mega first.
While it worked the bargraph got very hot quickly:

The reason was simple, spec says absolute max forward voltage for bargraph is 2.5V:

So I did put bargraph on my Arduino Due and it is running fine there for 25 minutes now without getting hot.

Arduino Due documentation says:

They also have an internal pull-up resistor (disconnected by default) of 100 KOhm

Since I configured the odd pins 35-53 as OUTPUT the internal resistors are disconnected?
If so, is it save to drive the 2.5V max bargraph LEDs with Arduino Due's 3.3V directly?

Hermann.

You have misunderstood the data sheet. Look at the "FORWARD CURRENT Vs FORWARD VOLTAGE" graph on page 3. Notice how the current increases rapidly as the forward voltage increases. If you assume the Due actually achieves a 3.3V output what will the current through the LED be and will it exceed the "Absolute maximum" DC Forward Current on page 2?

The poor Due outputs are being over-stressed as they are trying to output a voltage of 3.3V, by chance the current through the LEDs is being limited simply because the output transistors are acting as resistors and getting hot (the transistors are so tiny you might not feel the Due device actually getting hot, but they are quietly cooking away unseen, their little lives ebbing away as time passes).

The correct way to wire to the Due is to add a current limiting resistor in line between each LED Anode and the Due pin. The typical graph shows us that at 20mA the forward voltage will be 2.0V this leaves 1.3V to drop through a resistor.

R = V/I = 1.3/0.02 = 65 Ohms

The common values of 56 Ohms or 68 Ohms could be used.

Even 20mA is a bit over the specs for Due. Have a look at the pinout diagram. The pins are either low current or high current ones (see the legend). High current pins can safely source maximum of 15mA, low current pins can only source 3mA. All odd pins 35-53 are high-current ones except pin 43 which is low-current (amazing that it still worked after 25 minutes). So as rowboteer points out, you need to use resistors but I would use a higher value than 68 ohms to limit the current to 15mA. I would also leave out pin 43 since it's a low-current one. You can use odd pins 23-41 or even pins 24-50 if you need to have them all in one row.

Thank you both for the informative updates.

I only thought on probably damage for the bar graph, not for the Arduino Due pins.
I will never do this again without the needed resistors.
I alread lost DAC0 on one of my 3 Dues due to a directly connected micromotor ...

Before connecting directly I did use ten 1kΩ resistors with a Lipo powered Nano and LED brightness was good:

I also have a R4116R-1-102 IC with 8 1kΩ resistors, although R4120R-1-102 with 10 would be better for bargraph:

Hermann.

HermannSW:
I only thought on probably damage for the bar graph, not for the Arduino Due pins.
I will never do this again without the needed resistors.
I alread lost DAC0 on one of my 3 Dues due to a directly connected micromotor ...

Before connecting directly I did use ten 1kΩ resistors with a Lipo powered Nano and LED brightness was good
Hermann.

In general it is best not to use the Due pins to directly drive currents of more than a few mA as there is an "Absolute Maximum" total current limit on all I/O pins for the 144 pin package used in the Due of 130mA. This means that even is all other pins are not loaded on the Due the 10 LEDs in the bargraph display should not draw more than 13mA absolute maximum each (130mA all on) and even that is not good as device reliability is degraded when operating close to the Absolute Maximum and supply varaition can tip the current over this limit.

You will also find the outputs do not actually achieve 3.3V when loaded, so when driving 15mA the typical output voltage will be only 2.9V, not 3.3V, thus the actual current will always be lower than calculated (~13mA for 68R and 2V Vf LED).

It is best to use a device designed to drive LEDs if you need more than a few mA from a pin. If 1K gives good brightness then the current will only be circa 2mA and the individual Due pins will not be stressed.

I am not surprised the micromotor blew the pin. Motors are an "inductive" load and generate very large kick back voltage spikes that quickly destroy the output transistors just as static discharges do and the start current of a motor is much higher than the running current.