Simultaneous Button Presses

So I am getting ready for my first Arduino to arrive on Thursday or Friday and I would like to have my schematics perfect, along with any extra parts needed.

Duemilanove - 14 I/O Ports

I have 7 I/O ports that are forced to be there, so there is no way I can minimize these slots.

I would also like to use 14 transistor-controlled buttons, which easily puts me over my I/O port limit.

Right now I have (4) 2-to-4 decoders that will control these buttons, but no matter how I group the buttons I will somehow manage to press two of them at one time. Pressing two at one time is not possible with the decoders unless I add a timing circuit, to force the button to stay on for a second, to each button which I am not happy with unless it is the only option.

I read about using a shift register to control extra I/O pins. This would work, but I do believe I would be getting random button presses since each bit has to actually shift through the register. So really this would not work, unless this is operating in a way different than I believe.

I also read about I2C x-bit I/O port expanders. These seem to work, but is it possible to control each port at different times?

Thanks for the long-winded post here, but I would love to find an answer to this problem.

-Kevin

Duemilanove - 14 I/O Ports

No
Duemilanove - 19 I/O Ports

The analogue inputs can be used as I/O as well.

but I do believe I would be getting random button presses since each bit has to actually shift through the register.

No, there is a latch on the shift register outputs nothing changes until the latch is triggered.

I also read about I2C x-bit I/O port expanders. These seem to work, but is it possible to control each port at different times?

Yes.

It is not clear if you are talking about inputs or outputs in this post. A button is an input but then you talk of controlling the buttons. You read inputs, you control outputs.

Well that is some excellent information to receive about the analog ports.

14 of the Arduino's outputs will be connected to a circuit that will push a button on another piece of equipment.

On the other hand avoid using pins 0 and 1 as these are used for the serial communications, like uploading the programs. You can use them but it is not a beginners thing.

OK that is not called controlling a button, that is more like simulating a button press on an other piece of equipment.

I'm pretty nervous about using those pins. Seems I'm gonna test out these shift registers and see what happens.

Thanks for the help Mike, you didn't seem too grumpy to help out a novice like myself!