I2C not working between master and multiple slaves

Hello,

I am trying to a system where I have a master arduino sending simple instructions to its slaves and the slaves reading them.

When I connect the master to one slave and execute the sketch, the slave is able to receive the data from the master. But when I try to connect another slave to the A4 and A5 pins, one of the becomes completely cut off while the master proceeds to communicate with just one slave.

I know that this problem is common, but I checked the wiring, switched the slaves' sketches (let's say slave 1 has code 1 which doesn't work and slave 2 has code 2 which works, if I put code 2 in slave 1 then slave 1 begins to work but if I put code 1 in slave 2 then slave 2 doesn't work).

It should be mentioned that the code on both slaves are the exact same with the exception of their slave addresses being different.

I connected all of the arduinos' grounds together along with their scl and sda pins. They are all unos.

It should be noted that two of the three arduinos are chinese clones while one of them are genuine, I have a feeling that might be the reason why they're not communicating.

I tried using the scanner sketch and there were zero i2c devices detected. It would be greatly appreciated if I could get this issue solve and allow more than 2 slaves to communicate with the master

slave2.ino (1.21 KB)

slave1.ino (1.21 KB)

master.ino (1.68 KB)

how is everything wired? how long are the I2C wires? do you have external pullup resistors in place? when the I2C bus isn't working, what voltages do you measure on the I2C pins.

I feel very confident in saying that the fact that two of the boards are chinese clones is not the problem.

Hell, the only official arduino boards I have were received as gifts... (I keep my karma up by periodically donating to Arduino), and I buy pro mini and nano clones in lots of 5+ at a time, and often dedicate them to specific tasks (ex, i have one running jtag2updi for programming the new megaavr tinies, and another with arduino as ISP, both with wires soldered on going to appropriate connectors. And as you might expect, i treat them as disposable, and don't get upset when I step on one, or one gets crushed in my bag in transit - they're like $3 each, who cares? (ofc, when possible, I use my own ATTiny boards to "dogfood" my core, but sometimes a nano or pro mini is just too convenient to pass up)

Hey DrAzzy, thank you for the reply. I don't have any pullup resistors(10 k) because when I did try to add them, I would get no values on my serial monitor (it just becomes blank).

Some of the wires are as long as 20 cm, I'm not sure if that degrades the performance. I didn't check out the voltage yet, I'll try it out today