Looking for help regarding a Counter

jyank747:
I am looking for them to be a bit larger than 1 inch, rather 2-3 inch.

I would go to some on the production sites like DigiKey, Mouser or Newark and see if you can find one in the size you are looking for. I doubt you'll be able to find a 3 or 4 digit ones, so they will likely have to hooked up individually. Keep an eye on the forward voltage and current requirements. Bigger displays often have multiple LEDs within each segment which increases the total forward voltage.

One of my projects has these 7 segments for example.

It would be easy to connect a MAX7219 to 8 common-cathode 7-segment displays, 6 showing time & 2 showing lap count for instance.
H:MM:SSS, DD
Look at taydaelectronics (Thailand)for MAX7219, $1.25 each
If need larger digits there are other sources such as futurlec (Australia), 2.3", 3", 4", 5" available.

1.5-2 weeks for inexpensive shipping.

After looking at the website you both provided perhaps a Double Digit Seven-Segment LED Display for the laps 0-99.

And a Four Digit Seven-Segment LED Display for the real time module.

Wouldn't it be simplier if the two counts were on seperate LED displays?

jyank747:
Wouldn't it be simplier if the two counts were on seperate LED displays?

That was what I was thinking. They also have 4-digit 7-segment "clock" devices that include the middle colon, although those may be harder to find in the larger sizes.

that is okay i rather have the counter to be displayed larger than the real time, thanks for all your help.

now if i could get some help coding that would be great.

If you have the MAX7219 driving the displays, and you wanted larger 2-3" digits, then seperate common cathode displays is the way to go.
You said you wanted time to hundreths, so MM:SS.TH + 99 would be one way to occupy 8 digits.

CrossRoads:
If you have the MAX7219 driving the displays, and you wanted larger 2-3" digits, then seperate common cathode displays is the way to go.
You said you wanted time to hundreths, so MM:SS.TH + 99 would be one way to occupy 8 digits.

Does the Arduino come with MAX7219?

I have decided that I would have two sets of displays:

  1. 4-Digit 7-Segment LED Display for the real time
  2. 2-Digit 7-Segment LED Display for the counting (0-99)

2 buttons:

  1. Couting button for the 2-Digit 7-Segment LED Display
  2. Reset Button (not from the Arduino)

Is this possible?

Easily.
You can do it with SPI.transfer() commands to set up the MAX7219 and send it the 6 digits you want to display, or use some library to do it.
This is a much larger version that uses a Promini for control and a MAX7221 (MAX7219 is identical but with faster signal edges) driving countdown timer display (and countup is easier) in the middle and 2 set of 00-99 digits at the upper sides.
The '328P based promini does the timing, no external clock needed.

I think your hardest part will be making it all watertight.
Can make it rechargeable-battery powered with sealed connectors for the pushbutton for the lap counter and the external reset.
Or go fancier and make the reset wireless, so the only connection is for the lap button.

Here's a pricey connector, there are lower cost versions too, this one had nice picture

CrossRoads:
Easily.
You can do it with SPI.transfer() commands to set up the MAX7219 and send it the 6 digits you want to display, or use some library to do it.
This is a much larger version that uses a Promini for control and a MAX7221 (MAX7219 is identical but with faster signal edges) driving countdown timer display (and countup is easier) in the middle and 2 set of 00-99 digits at the upper sides.
The '328P based promini does the timing, no external clock needed.

I think your hardest part will be making it all watertight.
Can make it rechargeable-battery powered with sealed connectors for the pushbutton for the lap counter and the external reset.
Or go fancier and make the reset wireless, so the only connection is for the lap button.

CrossRoads, you really do understand what I am trying to design! I thought I was explaining it wrongly. In the image you attached, I see the two couting LEDS on the left and right as well as the bottom set couting real time. What at the 2 digit 7 segment LEDS under the large left do?

Is this image something you have made or something you found online?

found this. credit to missionduke. will this do what i am looking for as far as the counting part?

#include <SoftwareSerial.h> //for software serial communication

#define txPin 14 //change to your serial port on Arduino board
#define rxPin 15 //not used but is required

SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
int buttonPressCount;

const int buttonPin = 2; //the pin that the pushbutton is attached to

int buttonPushCounter = 0; //counter for the number of button presses
int buttonState = 0; //current state of the button
int lastButtonState = 0; //previous state of the button

void setup() {
pinMode(buttonPin, INPUT); //initialize the button pin as a input
Serial.begin(9600); //initialize serial communication

pinMode(txPin, OUTPUT);
//the following resets the board, changes the brightness to 100%, and sets the board to '0000':
mySerial.begin(9600);
mySerial.print(0x7A,BYTE); //special character
mySerial.print(0x00,BYTE); //set brightness to full
mySerial.print(0x76,BYTE); //reset board
mySerial.print(0); //send '0' character
mySerial.print(0); //send '0' character
mySerial.print(0); //send '0' character
mySerial.print(0); //send '0' character
}

void loop(){

buttonState = digitalRead(buttonPin); //read the pushbutton input pin

// compare the buttonState to its previous state
if (buttonState != lastButtonState) {
// if the state has changed, increment the counter
if (buttonState == HIGH) {
// if the current state is HIGH then the button
// went from off to on:
buttonPushCounter++;

Serial.print("number of button pushes: ");
Serial.println(buttonPushCounter, DEC);
updateDisplay(buttonPushCounter); //function to update the display 'requires button press count'

}

}

lastButtonState = buttonState; // save the current state as the last state, for next time through the loop

}

void updateDisplay(int buttonPushCounter){
String intString = String(buttonPushCounter); //changes integer to a string
char displayChars[4]; //create array to hold the four numbers
int stringLength = intString.length(); //get length of the string
//the following will determine if the button press count variable has 1, 2, 3, or 4 numbers in it
//and will fill the empty spaces with '0'. so if the button press count variable is '29' it will end up being '0029':
if(stringLength == 4){
displayChars[0] = intString.charAt(0);
displayChars[1] = intString.charAt(1);
displayChars[2] = intString.charAt(2);
displayChars[3] = intString.charAt(3);
}else if(stringLength == 3){
displayChars[0] = 0;
displayChars[1] = intString.charAt(0);
displayChars[2] = intString.charAt(1);
displayChars[3] = intString.charAt(2);
}else if(stringLength == 2){
displayChars[0] = 0;
displayChars[1] = 0;
displayChars[2] = intString.charAt(0);
displayChars[3] = intString.charAt(1);
}else if(stringLength == 1){
displayChars[0] = 0;
displayChars[1] = 0;
displayChars[2] = 0;
displayChars[3] = intString.charAt(0);
}
mySerial.print(0x76,BYTE); //Reset board
mySerial.print(0x76,BYTE); //Reset board
mySerial.print(displayChars[0]); //Send '0' character
mySerial.print(displayChars[1]); //Send '0' character
mySerial.print(displayChars[2]); //Send '0' character
mySerial.print(displayChars[3]); //Send '0' character

delay(100); //this will make it so you don't get double counts. you could also use this to avoid someone pressing the button repeatedly 'for fun!'

}

I programmed the top left & top right to allow score from 00 to 99.
The bottom four count down from presets of 10:00, or 3:00, or 1:00, to 00:00 (fencing specific times)

The two smaller digits are not driven by the MAX7219 (but that can easily by used, make sure to get common cathode digits).
One digit shows E,S,F for Epee, Foil, Sabre.
The other shows the period of the bout - 1,2,3 for an individual bout, with score that would end at 15, and up to 9 for a team bout, with score that would end at 45.
The decimal points from the digits were used as various indicators - penalty, priority, coin toss & result.

This one actually uses two promini's, you can see one at the left edge and one in the middle. It was built up in stages, initially just to mimic time & score lights (the large blocks) from another source, with score controlled independently, all by the middle card. Then speaker was added (amplifier on the small board on the right and a speaker below the cards), and finally detection of score touches was added with the left promini to replace the external box that provided the time & score lights, and period & weapon indicator.
I will replace both promini's with a 1284 and combine the 2 programs when I make the next one as my coding has improved a lot since I created this, and my use of SPI has really taken off.

CrossRoads:
I programmed the top left & top right to allow score from 00 to 99.

Do you still have that code? and are willing to share? If not, would the code I found above do the trick?

I'll share, score keeping is simple enough.
How are you connected up? I use SPI exclusively to MAX7219. What do you have?
If you don't see me post it, its because I forgot - ping me tonight.

CrossRoads:
How are you connected up? I use SPI exclusively to MAX7219. What do you have?

crossroads, this is embarassing to admit, but i have no idea what i have. all i know is that i bought the arduino starter kit.

Does this make sense? Expand to as many digits as needed.
Adjust connections for your displays.

MAX7219-MAX7221.pdf (451 KB)

thanks crossroads, i realy appreciate it. i will take a closer look at it tonight. don't i need a code to program it?

jyank747:
DS1307 kit that adafruit sells

Looked at this on thier website and they provide the code for it. How can I hook this up to the LED display?

with two seperate LED 7-seg displays, i want it hooked up to one push button.

first push turns on a counter and a stop watch

for each push after it will count in 2's (0,2,4,6,8,10...) and stop watch continues

double push will count the last push and stop the timer.

can anyone help, please?