The programming would be something like take a byte (CurrentState) and add or subtract a byte (00001000 for pin 5) to turn it on or off respectively.
If I have my execute tray as this: 00000100. Now I want to turn on bit 2 and leave 3 on, I should send this byte: 00000110. Latch. Now 2 and 3 are on.
I have a project in mind that will require more GPIO pins than what is available on an UNO
Hi,Well, the obvious answer is to use a Mega!
But if you explain your project idea in more detail, experts here may be able to come up with ways to do the same thing with dramatically fewer outputs. For example, one way of dealing with a large number of identical components is to arrange them into a matrix. This is how keyboards work. They don't contain a chip with 100+ inputs!
Maybe get a tpic6(c/b/a)595 to experiment with. They behave just like a 74xx595 but can sink far more current (but cannot source any current). Maybe a useful chip for driving solenoids.