Shuffleboard Scoreboard rebuild

Hi...

I'm a newbie to these types of builds and I'm not quite sure the correct language when searching the forum. So hopefully some folks can point me in the correct direction to get this project up and running.

We have a 22 foot shuffleboard from the 1950s that has been completely rebuilt except for the the electronics controlling the scoreboard. There was too much water damage and all the old "brains" and wires cannot be salvaged. So in comes the Arduino UNO, 4 momentary buttons, and about 110 LEDs (by counting the original old light bulbs on each side of the board).

Each end would have a red button and a blue button (4 total). What we would like to happen is every time someone scores at the end of each frame a momentary button (either red or blue team) would be pressed for each score. Each press would light an LED sequencing through 1-9 depending on what the score was. Once you get to 10, it would light the number 10 above (keeping it lit) and then go back down and sequence through 1-9 again until you get to 20. Then the 20 light would stay lit and the 10 light turn off.

Lights...
Red side (x2 sides)
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9

10 - 20 - 30 - 40 - 50

Blue side (x2 sides)
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9

10 - 20 - 30 - 40 - 50

Does any of this make sense? Can anyone point me in the correct direction? I'll post up some pictures of the scoreboard glass and the diffuser/light bulbs behind the glass.

Thank you and sorry for such a long first post!

I forgot I did have pictures already.

A MCP23017 I2C expander chip can handle 16 I/O lines. 4 of those chips to interface 64 of the lights, one red front, blue front, red back and blue back.

What are the specs of the LEDs (If, Vf)? If the LEDs take more than about 20mA each, you will need driver transistors for them if using I2C expanders.

An alternative to the I2C expanders are the high current 595 shift registers.

The programming would not be that complex. Use the state change detection method to sense and count button presses.

You may be able to simplify your 110 lights to a much smaller number by wiring groups of them that are lit at the same time at all times.
If you really wish to individually address them, I'd use a matrix with shift registers. 110 LEDs need a 10x11 matrix, that's three 595s (but matrixing won't work with the high power ones, as they can only sink current - still they're much faster and probably much easier to use than I2C expanders).

wvmarle:
You may be able to simplify your 110 lights to a much smaller number by wiring groups of them that are lit at the same time at all times.
If you really wish to individually address them, I'd use a matrix with shift registers. 110 LEDs need a 10x11 matrix, that's three 595s (but matrixing won't work with the high power ones, as they can only sink current - still they're much faster and probably much easier to use than I2C expanders).

I wonder if there is a need for anything so complex.

Perhaps each digit could be driven by the right sort of decade counter: google "4017 decade counter" to see the kind that I mean. Now that I think about it, decade counters would be very much in the spirit of the original, electromechanical circuitry.

Still, though, you would have to somehow take care of switch debounce. In layman's terms, that means that when you press the "count" button once, the number should go up by only 1, and not by 2 or 7 or 20. In real life, switches tend to be "bouncy" (meaning: when you press the button once, the circuit "sees" multiple presses), and thus you need some way to debounce them.

It's a good thing you have the scoreboard and I don't. If I had it, I would be unable to resist the temptation to turn it into a wall clock.

odometer:
Perhaps each digit could be driven by the right sort of decade counter: google "4017 decade counter" to see the kind that I mean.

Without seeing the display I'm quite sure that's not going to work for OP as many lights will be shared between digits.

Much closer could be splitting them in 7 segments, and then using a 7-segment driver to display the numbers. Or two sets for 2-digit numbers. But whether that works depends on the actual layout of the thing, and what OP wants to display on it. If it's also to show animations, individual connections are needed and a matrix is probably the appropriate solution.

I do not see 100 , but there are 51 or so. on the one side.... are there 2 sides ?

some are multiple lights on the one circuit.

As you see, three are more than a few ways to do this.

as for the debounce, a hefty half second denounce time might be in order if the patrons imbibe and have a tad less muscular control at times and tend to lean on the switch. maybe a nice click or beep might be in order as well.