Hi, I am doing a project to connect multiple Arduino devices with wire and allowing them to communicate. The requirements are:
- Each Ardruino device operates exactly the same individually if no other devices connected.
- Each Ardruino device can connect/disconnect to 1 or more other devices with wire at runtime.
- Some common info can be shared among all the devices connected.
- Each Ardruino device can "DIRECTLY" connect to at most 4 devices.
- Total devices number in the connected network is at most 10.
The way I am thinking is to use I2c bus to connect all the devices, and dynamically pick one device as master and all other devices as slaves. Then master can broadcast the info to share to all slaves.
Since all the devices setup exactly the same, it means each device will setup its own pull up resistor for SDA, SLC pins to connect to VCC. When devices connects together, all the VCC, GND, SDA, SLC will connect together. My question is will the pull up resistor be a problem here? Because multiple connected devices will make the resistor connected in parallel, which will reduce the effective resistor value. Will it eventually go down to a value that I2C will not work? Is there a way to solve it?
Thanks
[Edit] I seem to find a solution, just needed a transistor as a switch to control the existence of the pull up. Only master could have pull up. Seems working tested on two devices.