A group of classmates and I are trying design a giant lite brite board for displaying simple messages/images. The board will consist of 15 rows of 23 push buttons (345 push buttons in total). The idea is to enable a user to press various push buttons that individually change color each time a button is pressed. The approach we are taking is using microcontrollers to control multiple LEDs, rather than having a counter circuit controlling each push button. What we are struggling with is how to begin designing the circuits and understanding how to determine what our requirements will be for microcontrollers (i.e. number of inputs and outputs). Any suggestions are welcome.