large 7 segment display help

I purchased 3 6.5" displays with 3 of the Sparkfun large digit driver. I have been able to manipulate the code for analog purposes but I cant figure out how in the code “Sparkfun example” how to tell the program I have 3 digits.

/*

Controlling large 7-segment displays

By: Nathan Seidle

SparkFun Electronics

Date: February 25th, 2015

License: This code is public domain but you buy me a beer if you use this and we meet someday (Beerware license).

This code demonstrates how to post two numbers to a 2-digit display usings two large digit driver boards.

Here’s how to hook up the Arduino pins to the Large Digit Driver IN

Arduino pin 6 → CLK (Green on the 6-pin cable)

5 → LAT (Blue)

7 → SER on the IN side (Yellow)

5V → 5V (Orange)

Power Arduino with 12V and connect to Vin → 12V (Red)

GND → GND (Black)

There are two connectors on the Large Digit Driver. ‘IN’ is the input side that should be connected to

your microcontroller (the Arduino). ‘OUT’ is the output side that should be connected to the ‘IN’ of addtional

digits.

Each display will use about 150mA with all segments and decimal point on.

*/

//GPIO declarations

//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

byte segmentClock = 6;

byte segmentLatch = 5;

byte segmentData = 7;

//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

void setup()

{

Serial.begin(9600);

Serial.println(“Large Digit Driver Example”);

pinMode(segmentClock, OUTPUT);

pinMode(segmentData, OUTPUT);

pinMode(segmentLatch, OUTPUT);

digitalWrite(segmentClock, LOW);

digitalWrite(segmentData, LOW);

digitalWrite(segmentLatch, LOW);

}

int number = 0;

void loop()

{

showNumber(number); //Test pattern

number++;

number %= 100; //Reset x after 99

Serial.println(number); //For debugging

delay(500);

}

//Takes a number and displays 2 numbers. Displays absolute value (no negatives)

void showNumber(float value)

{

int number = abs(value); //Remove negative signs and any decimals

//Serial.print("number: ");

//Serial.println(number);

for (byte x = 0 ; x < 2 ; x++)

{

int remainder = number % 10;

postNumber(remainder, false);

number /= 10;

}

//Latch the current segment data

digitalWrite(segmentLatch, LOW);

digitalWrite(segmentLatch, HIGH); //Register moves storage register on the rising edge of RCK

}

//Given a number, or ‘-’, shifts it out to the display

void postNumber(byte number, boolean decimal)

{

// - A

// / / F/B

// - G

// / / E/C

// -. D/DP

#define a 1<<0

#define b 1<<6

#define c 1<<5

#define d 1<<4

#define e 1<<3

#define f 1<<1

#define g 1<<2

#define dp 1<<7

byte segments;

switch (number)

{

case 1: segments = b | c; break;

case 2: segments = a | b | d | e | g; break;

case 3: segments = a | b | c | d | g; break;

case 4: segments = f | g | b | c; break;

case 5: segments = a | f | g | c | d; break;

case 6: segments = a | f | g | e | c | d; break;

case 7: segments = a | b | c; break;

case 8: segments = a | b | c | d | e | f | g; break;

case 9: segments = a | b | c | d | f | g; break;

case 0: segments = a | b | c | d | e | f; break;

case ’ ': segments = 0; break;

case ‘c’: segments = g | e | d; break;

case ‘-’: segments = g; break;

}

if (decimal) segments |= dp;

//Clock these bits out to the drivers

for (byte x = 0 ; x < 8 ; x++)

{

digitalWrite(segmentClock, LOW);

digitalWrite(segmentData, segments & 1 << (7 - x));

digitalWrite(segmentClock, HIGH); //Data transfers to the register on the rising edge of SRCK

}

}

*/

This is a guess, but try the following…

In loop(), change

number %= 100; //Reset x after 99

to

number %= 1000; //Reset x after 999

And in showNumber(), change

for (byte x = 0 ; x < 2 ; x++)

to

for (byte x = 0 ; x < 3 ; x++)

thanks for the help