Connecting multiple externals modular with an Arduino

Hey Guys,

I'm currently working on a project where multiple external devices (Potentiometers, Faderesistors and Push-Buttons) need to be connected to an Arduino in a modular way. Says, i want small blocks (each one with a mC and a resistor or button) and connect them to an Arduino. I can connect them by the analoge-inputs, but that's not very userfriendly and in addition to that, its not very modular.

I'm very new to mC-Programming in general so first I read a lot about it and the right way to handle the connections between the devices. I think this is a very similar topic I found (Multiple Arduinos : master to slaves + slaves to master ? - Networking, Protocols, and Devices - Arduino Forum). The TO came to the conclusion, that Multi Master I2C is the best protocoll to realize the connection. But all i can find about Multi-Master I2C is the fact thats it's not very relieabe and also doenst work with the arduino wire-lib.

Do you habe any other options for me? Currently I connected every module (as a slave) by I2C to the Arduino (master) , but therefore I need a static adress and also the Arduino has to check every x ms the status of all modules. Pretty annoying if you press a button under <x ms and the Arduino doesnt check the pressed button. Perfect would be a method where I change one of the resistors, and the Arduino gets the information from the build-in microcontroller inside the module immediately.

Take a look at the CAN bus. It's the closest match I know to your desires.

Although I cannot see why polling is that bad. If you check for a simple button press in the Arduino world you do the same: polling.

If you have a microcontroller in each module then it should remember if a button was pressed since the last time it was polled.

You should only scan all 127 I2C addresses infrequently, then keep a list of what is active so you can poll more frequently.