Comunication between multiple arduino boards

First of all I want to thank all of you guys that are contributing to this forum. I read most of your posts from the first day of arduino came out to light.

I have come here with a problem and I want to ask for your help.

2 years ago I have made a home light controll using arduino mega and now I'm thinking to upgrade it to a new improved system.
After some research/documentation I have chosed to have multiple arduino bords that will controll different zones. Each arduino for a specific zone. Also I will have a MAIN board that will controll the connection from a small pc to the rest of the arduinos.
The problem appears in the comunincation. I need to connect all arduinos boards toghether using only a few wires (as few as possible) and all of them must be able to send/receive date between them using the MAIN arduino.

Let me give you an example:
the arduino NR. 1 will control the lights from LIVING ROOM, the arduino NR. 2 will controll the lights from BEDROOM and the MAIN arduino will help me to connect from my computer to NR.1 and NR. 2.
Now...both of arduinos NR.1 and Nr. 2 have buttons that will turn on/off the lights from teir specific room. So if a button from a room will be pressend the MAIN arduino will be informed about it, also if I will want to turn on/off lights from BEDROOM using my computer that is connecting to the MAIN arduino, the arduino NR.2 (from BEDROOM) will be informed about this one.

So, I want to know how can I make a multiple arduino comunication where all of the boards can send or receive data. I have read about I2c but it seems that I can't send signals from slaves to other boards or to the main controller.

Do you have any ideas? I need to be able to connect a maximum of 50 devices in paralel if it's possible.

Thank you very much for your time!
Marius

Connect all in parallel using RS485, either 2-wire (simplex - one way comms: master to selected slave, slave back to master) or 4-wore (duplex (master & slave talk together at same time).
Have master individually poll each room in nice orderly fashion, keep more than 1 device from "talking" at a time.

Do you have any ideas? I need to be able to connect a maximum of 50 devices in paralel if it's possible.

You might consider a wireless setup instead of wired.

CrossRoads:
Connect all in parallel using RS485, either 2-wire (simplex - one way comms: master to selected slave, slave back to master) or 4-wore (duplex (master & slave talk together at same time).
Have master individually poll each room in nice orderly fashion, keep more than 1 device from "talking" at a time.

Thank you CrossRoads!
I have read about rs484 and it seems that is what I wanted!

I believe this is the way to connect them..

But it seems that it may appear a problem. Device limitation!
Most of them are limited to 32 devices, however I have found out that modern transceiver chips are rated at 1/4 or 1/8th unit load. In theory means that you could be able to have 4x or 8x as many nodes on a wire.
Is that corect? Can this be possible?

Also, and most important, does an arduino has enought CPU/RAM power to control 100 devices? Should all the devices have to be the same or you can have devices with different configuration?

Thank you very much!

zoomkat:
You might consider a wireless setup instead of wired.

I have take in the consideration of using a wireless setup but it has a few disadvantages:

  • the hardware is not cheap
  • the limitation of the signal if you have multiple walls betwwen two devices
  • each zone must have a battery for the transceiver or a power supply. A power supply already means 2 wires

So for the moment I need to stick to the wires configuration :slight_smile:

Thanks for your help!

Try these devices from TI that present 1/4 load to the bus, allow up to 128 nodes on the bus.
http://www.ti.com/lit/ds/snls096c/snls096c.pdf
Available from digikey.com

CrossRoads:
Try these devices from TI that present 1/4 load to the bus, allow up to 128 nodes on the bus.
http://www.ti.com/lit/ds/snls096c/snls096c.pdf
Available from digikey.com

Nice!
What about hardware power. Does an arduino has enought CPU/RAM to control 128 devices?

Also, should all the devices have the same hardware configuration or you can have devices with different configuration? Like 2 arduinos MEGA , 3 arduinos pro mini and an arduino DUE?

Ty

Yes, CPU can control 128 devices.
You can mix & match hardware config, all will be talking to each other over serial, one won't care how the serial originates on an another. Have same data rate used by all.
RS485 buffer lets the 5v devices talk to 3.3V devices.

CrossRoads:
Yes, CPU can control 128 devices.
You can mix & match hardware config, all will be talking to each other over serial, one won't care how the serial originates on an another. Have same data rate used by all.
RS485 buffer lets the 5v devices talk to 3.3V devices.

Thanks man! You saved me!

One more thing please,
I have found these wireless modules
http://www.ebay.com/itm/10PCS-Arduino-NRF24L01-2-4GHz-Wireless-Transceiver-Module-New-/170819069271

do you think that I will be able to do the same thing with these devices, I meant multiple master/salve in a network?
If not, is there any other wireless cheap solution available?

Thanks