Large Multi 7 Segment Display @ 8 volts with standard 74HC595

I'm 50 years old and have been in the computer field for all of my Adult life, but I have yet to have my Eureka moment when it comes to electronics. Now my 14 year son is getting in Arduino and have a project he wants to use ten Large 2.3" 57mm Red Segment Display. So we have been planning this project with an Arduino as the controller.

To drive it, we will need each segment to have its own 74HC595 Bit Shift and we will daisy chain them together and then serial load what we want to see on the display.

Where I get confused is that my Arduino is 5V, the 74HC595 that i have are rated at 2 to 6 volt and the displays are HP HDSP-C2E1 that are rated a 8 volt.

I'm just not sure how wire the connection between the bit shifter and the display. Any help would be appreciated.

Thanks

Firstly those displays are common anode with forward voltage for the digits of 8V nominal, 9.2V max.
The decimal point is different, forward voltage 4V nominal, 4.6V max (the DP has only two LEDs in
it, not 4 like all the digits).

LEDs take almost no current at voltages below the forward voltage (say 60% or less of the forward
voltage), which works for you here.

Lets assume you power the common anodes at 10V and '595 shift registers at 5V. This means
with the outputs HIGH there is only 5V across the digit LED strings, they will probably be fully off
or at worst very dim. Using 180 ohm resistors on each cathode and with the '595 output LOW,
the outputs will be about 0.2V or less, giving 9.8V across LEDs and the resistor, which with
8V forward voltage means 1.8V across the resistor and 10mA will flow.

The '595 is rated for a maximum of 70mA on the supply pin or ground pin, you could drive up
to 7 outputs at 10mA simultaneously just. You could not run the display at its nominal 25mA
per segment direct from the '595s

The decimal point cathode is trickier still - 4V below 10V is 6V, above the maximum pin voltage
for the '595 (when powered from 5V).

All in all I don't think direct drive from the '595 is the way to do this, I suggest adding an ULN2803
chip to buffer its outputs - this can both cope with any voltage upto 50V and handle 8 x 25mA no
problem. Its saturation voltage is about 1V, so you'd need to probably go for 12V supply, 120 ohm
resistor for the cathodes (except the DP, which would use 270 ohms). This gives 25mA per segment
or so. ULN2803 isn't particularly expensive and is a straight-through pin-to-pin layout which is
simple.

50, you are a youngster. :wink:
Better choice.
You may want to consider TPIC6B595 @150ma per o/p.

I son and I (actually he recommended it) were kicking around using transistors to step up the voltage and current flow above the limitations of the 74HC595. The ULN2803 sounds like it solves this problem perfectly.

I have the serial connection down to the 595, my days with serial devices comes in handy.

My entire circuit will need a 12 volt power supply that supports 8 x 25mA x 10 digits fully lit and a bit extra for the Arduino and sundry components. I will need a resistor to drop the voitage to 5V for the Arduino.

For each digit, we will need to build a circuit comprising of a 74HC595, ULN2803 and the HDSP-C2E1, 7x120ohm resistors and a single 240ohm resister.

Wired as follows:

  • Run the 74HC595 at 5V (off the Arduino 5V)
  • Drive each of the outputs of the 595 (Q1-Q8) to input pins on the ULN2803 (1-8 ) (I take it I don't need a resistor between devices)
  • On the ULN2803 we will connect pin 9 to ground and pin 10 to my 12 Volt supply (do I need a current limiting resistor here?)
  • On the ULN2803 Pins 11 to 17 will pass through a 120 ohm resistor to the A-G segment pins on the HDSP-C2E1 and Pin 18 will pass through a 270 ohm resistor to feed the decimal point.

I am still wrapping my head around the electronics. I can picture in my mind databases, program logic flow and packets flying around a network, but electronics still not getting the full picture, yet.

Thanks

Also, I just wanted to make sure that the resistors in the 1/4 range will work. If I'm not mistaken, 25mA * 8 volt will equal .2 Watts. Did I get at least get that math correct.

Just use TPIC6B595 - up to 50V, and 150mA current sink capable. Way better than HC595+ULN2803
I have 12 of them on this board that I offer with a '328P for Arduino functionality (replaces Uno) to drive up to 96 LED strips or 12 7/8 segment displays. Plug on an FTDI Basic to download sketches/interact with Serial Monitor for debugging, just like a ProMini.
http://www.crossroadsfencing.com/BobuinoRev17/

Send data to TPIC6B595 same as you do 74HC595 as well.
I use SPI.transfer myself:

digitalWrite(ssPin, LOW);
SPI.transfer(dataArray[0]);
SPI.transfer(dataArray[1]);
SPI.transfer(dataArray[2]);
SPI.transfer(dataArray[3]); // assuming 4 digits worth of data
digitalWrite (ssPin, HIGH); // outputs  update on this rising edge

Some people prefer the much slower shiftOut() to bit bang the clock signals out vs using the onchip dedicated hardware designed for just such a thing.

So the drains on the TPIC6B595 are basically the same as the Q1-Q8 on the 74HC595?

This is a good solution. Just bought a pack of 10 for the prototype.

Thanks

They are the best solution for things like this.