I'm working on a project that involves about 200 LEDs and about 120 Switches. I'd like to use several MCP23S18 DIP chips across 2-3 buses to control everything. I'm a CS guy and just want to make sure I've got a decent idea of how this is supposed to come together.
The MCP23S18 datasheet.
Some general fact checking and advice on better ways to do this are all appreciated, I'm very new at this (for the record, this is not for class, just fun).
1) I've got LEDs for 2.2v at 20ma draw. I plan on using them in serial pairs, so the voltage drop should be 4.4 and the draw should be 20ma for each pair right?
2) According to the MCP23S18 datasheet (pg 33) the max Vin current draw is 125ma, and the max Vout is 400ma. This means I can safely power 6 pairs of LEDs with an approximate 4.4v chip input right? This means I should be able to use the remaining 11 pins an inputs as long as they are in the open drain configuration, thus avoiding significant draws right? Will it be safe to run all LEDs and have all switches open at the same time (assuming ample power supply)? What is the difference between "current sunk" and "clamp current"?
3) Does anyone have any ideas for a better alternative way to drive multiple leds? I know for some areas of the project that have groups of LEDs it will probably be easier to make a few cheap drivers so I can use all 16 pins as LED control. I've also considered using shift registers for this because I've found some with a 500ma Vin max, I could drive several easily this way. Perhaps a combination of the two, controlling the SR via an IO expander?