Multiple arduinos in same bus line

I'm gonna start a new project where i want to connect multiple arduinos in the same bus line. I know that with SPI you can do that, connecting the miso from one to the mosi of another, etc (so, 4 cables) or we can use multiple SS cables for each arduino (depends of the amount of arduinos connected).

My question is: is there any way possible of connecting the arduinos with tx-rx so all of them are listening to the bus and the master sends a signal with an ID? So, just the arduino that recognizes that ID will send data back to the master and all of the others stop listening to the bus?

Is it best to use half or full duplex communication?

Grateful

My question is: is there any way possible of connecting the arduinos with tx-rx so all of them are listening to the bus and the master sends a signal with an ID? So, just the arduino that recognizes that ID will send data back to the master and all of the others stop listening to the bus?

I think what you want is I2C, not SPI.

SurferTim: I think what you want is I2C, not SPI.

I2C for great distances have a lot of noise, Am I correct? What i saw was rs485, but is there any way to implement it without any addon?

I use the I2C bus for my external equipment like gyros and compass. No other device is needed. Just a data (SDA), clock (SCL) and ground lines are required. There is a protocol you must follow though. http://arduino.cc/en/Reference/Wire

I'm not certain how to set up the Arduino as a bus slave, only a bus master. Maybe a forum search will help you.

SurferTim: I use the I2C bus for my external equipment like gyros and compass. No other device is needed. Just a data (SDA), clock (SCL) and ground lines are required. There is a protocol you must follow though. http://arduino.cc/en/Reference/Wire

I'm not certain how to set up the Arduino as a bus slave, only a bus master. Maybe a forum search will help you.

I already used I2C ;). For example, if you have 4 arduinos and you need a bus that is 2m long, I2C isn't the best one, right?

I'm not certain about any protocol you have mentioned that is good for long distance. It may be SPI at a slow speed is your best bet. It looks like you can also slow up the I2C bus also, but not as simple. It appears you would need to modify the wire library to reduce the speed. It looks like the speed is preset at 100KHz, but I could be wrong on that part.

If you go for I2C, I would add additional pullup resistors to the SDA and SCL lines. Line capacitance is the killer here.

And what about rs485? How many controllers can you have in one line? Is it easy to implement and use?

Grateful

If you are interested in RS485, try searching for Nick Gammon's articles on that topic. I think he has that stuff on his website. He is the guy to ask. Here is a link to the article on his site. http://www.gammon.com.au/forum/?id=11428

SurferTim: If you are interested in RS485, try searching for Nick Gammon's articles on that topic. I think he has that stuff on his website. He is the guy to ask. Here is a link to the article on his site. http://www.gammon.com.au/forum/?id=11428

Grateful for all the help ;) I'll check it, if i have further questions, i'll post them in here :D

My question is: is there any way possible of connecting the arduinos with tx-rx so all of them are listening to the bus and the master sends a signal with an ID? So, just the arduino that recognizes that ID will send data back to the master and all of the others stop listening to the bus?

That can be done with the arduino serial tx/rx.