MCP23017 یه پورت اکسپندره (توسعه دهنده پورت)
با واسط I2C وصل میشه به میکروکنترلر شما
میتونید داده ها رو براش بفرستید از این طریق و اونم بر اساس همین داده ها پورت های مشخص رو خودشو فعال و غیر فعال میکنه
و همینطورم میتونید داده ها رو بگیرید ازش
قابلیت اینتراپت هم داره
ولی فک کنم 16 بیته (یعنی داده های 16 بیت میفرسته و میگیره).

میتونید از آردویینو های mega استفاده کنید که تعداد ورودی خروجی های بیشتری دارن

میتونید از مالتی پلکسر استفاده کنید که یه آی سی جدا گانه س (البته در این حالت همه بصورت همزمان وصل نیستن به میکرو. ولی میتونید مشخص کنید در هر لحظه که کدوم ورودیا یا خروجیا وصل باشن)