Communicating between 2 Arduino with 20' distance?

I'm trying to set up a "network" of Arduinos that send data back and forth between each other.

I know that I2C protocol would probably be the easiest since it only uses up 2 pins and those are the analog pins that I dont use much of anyway.

But I heard somewhere or read somewhere that the I2C protocol will only work within 5 feet or so of each other?? I need to wire Arduinos from different rooms to each other. How would I accomplish this? I know I can use an Ethernet shield between each of them, but that would be fairly expensive... is there any other option?


I2C is limited by the line capacitance (400pf) and 20 feet might be doable but might be stretching I2C's limit.

Since you are only talking about two devices, either hardware serial (pin 1,2) or soft serial should be all you need as Rich suggested.

I just started this thread. Maybe you could use a 1-Wire connection like I am trying to accomplish? Drawback of 1-Wire is that it is not as fast as I2C, but you can use it over longer lines.

You might also want to consider RS485

The following takes you pages about using serial comms...

RS485 is designed for that. You can buy several chips to use as the interface:


Are you only wanting to have two Arduinos? You say different rooms but not how many Arduinos.

I ask because connecting the hardware is almost trivial, but if there's more than 2 Arduinos talking on the wire you will have software issues.

I want an arduino in each room if possible...that's why I want i2c... I can have one master and a bunch of slaves. The slaves will be hosting rfid readers on the serial receive line so I didn't know if I could use it for communication...

The slaves will be hosting rfid readers on the serial receive line

If you you only need Rx for the rfids you could bit-bang that and use the UART for your comms to the master.

Check this link for multiple arduinos and RS485 - master & slaves…