Okay, I may have two posts mixed up. But not totally. I had 6 LEDs strings & 18V supply on the mind from something else.
Did you look at the internal schematic for your part? The segments all have 3 LEDs in series. 5V from an arduino will not be enough to turn them on. You will need to apply a voltage of >6V to pins 1&5 for all the digits, then individually apply a logic low (close to 0V) to turn an individual segment on.
When a segment is not on, the bottom of the last LED will go up to whatever voltage you are suppying them with and blow up the output of the arduino or standard shift register if that is above 5V.
To turn the segments on, you will use the shiftout command with 1s & 0s.
The shiftout command looks like this
shiftOut(shiftdataout, serialclock, MSBFIRST, outdata);
where shiftdataout is the pin that data is coming from on the arduino.
serialclock is the clock line from the arduino,
MSBFIRST indidatces bit 7 goes first,
and outdata is the 8 bits you want sent out.
If for example your shift register bits were wired like this:
Output 0 = segment A
O1 = B
O2 = C
O3 = D
O4 = E
O5 = F
O6 = G
O7 = decimal point
Thus to send out a "1" character, you set outdata to
(bit # / segment -on/off)
outdata would be set to 0b11111001 if you had a shift register that could handle >5V on its outputs, such as the tpic6b595. The 2 zero bits would result in low outputs for O2 & O3 to turn on segments B & C.
On the other hand, if you used a standard shift register and added transistors to its outputs to control the LEDs instead, such as the last schematic I posted (where I showed 6 LEDs instead of 3 by accident), then you would shift in 1's to turn on the transistors; outdata would be set to 0b00000110. The two 1 bits would turn on the 2 transistors for segments B & C and turn them on.
You will need 1 shift register per digit. The >6V supply will go to pins 1&5 on all the digits.
Another option is to put a part like an 74LS47 in there, which can work with up to 15V.
A shift register could supply 4 bits to each of two 74LS47s. The '47s will decode the 4 bits into 15 characters (plus a blank state), so you coud just shift out a "1" and it will show up as 1, "2" for a 2, etc. and hex "f" to blank the display. However, you are stuck with the decode that is built in. If you wanted characters that looked like some letters (E, h, P, n, L, A, J, C or c, etc.) you're better off with the shift register so you have more control.