I am trying to build a long range (approx. 15 meters) I2C communication between one ATmega328p and several (approx. 10) ATtiny24A, both will be programmed using Arduino IDE.
All the microcontrollers will be on same I2C bus. 328p will be the master and others will be slaves.
Communication will consist very low info size, for example master will scan for slave devices first, after confirmation every slave device are intact it will go to receive mode.
Slaves will send only 2 digital input values to master when the values changed (2 buttons on 2 digital inputs on slaves), after initial scan mentioned above.
The furthest slave will be 15 meters away from master which will be connected with shielded wire (e.g. 4x0.22 wire).
So my main questions are,
Do i need to use I2C Repeater IC's or for this cable length and data size will it be enough to lower I2C speed to 1kHz (maybe 10kHz)?
If lowering I2C speed will solve the problem, do i need to use " Wire.setClock()" function on both master and slave codes?
Do ATmega328p and ATtiny24A both support low speed (1kHz or 10 kHz) I2C communication?
Lastly, on net, generally I2C pull-up resistors are selected 4k7 ohms. Is it enough if I place them only on master board or do i need to put them on slave boards also ?
Your help would be much appeciated.
Thanks in advance.