Is there a Parallel-In-Serial-Out (PISO) shift register that has internal pull-up resistors?
I want to use it on an array of buttons.
I have used a 74HC165 with external pull-up restistors.
I have used I/O expanders with internal pull-up resistors.
But I have not found a PISO shift register with internal pull-up resistors.
Why not use the I/O expander?
Otherwise, just use a resistor array.
Thanks Paul__B. I did not know about resistor arrays, those will do nicely.
The project has 20 buttons. So I figure daisy chain three 8-bit shift registers would be the simplest.
Are you using more than one button at once.
Maybe a 5x4 matrix (9pins) or resistor ladder (one analogue pin) could solve your problem.
There will be simultaneous key presses.
It's for a split keyboard, with 20 keys on each hand.
The two halves connected by 5 wires.
Using the SPI library as demonstrated on Gammon Forum : Electronics : Microprocessors : Using a 74HC165 input shift register
Actually, that is not a problem.
You can use a matrix as long as you include a diode in series with every button, so any number of simultaneous key-presses can be distinguished.
Using diodes means that you can use a 74HC4017 to scan through 10 rows (but you would then need pull-down resistors on the columns) controlled by only two pins, and a shift register to read the columns.
Or just a SIPO and a PISO shift register - 64 buttons potential.
Or a SIPO shift register (74HC595) and five (for 40 buttons) Arduino input pins (plus the three outputs for the shift register).