I'm currently working on a personal project for which I need to allow multiple Arduinos to communicate together.
The though point being that I need the communications to work both ways : from the Master to (one of) the slaves and from (one of) the slaves to the master.
I already studied few protocols that could fit my needs, but without any success :
- I2C : my first guess, but slave to master needs to be done by polling from the master ... not possible in my case : some of the slaves need immediate attention from the master
- SPI : both ways, but slave must be selected by a dedicated line
- UART : not enough serial ports on my Arduino Uno
- RS-485 : it seems that, although communication can be done both ways, it must be initiated by master that sends data, and then waits for an answer ; the use of RS-485 also implies buying additional hardware (transcievers)
I2C seemed an easy way to accomplish my goal : is this a good idea to handle slave to master with slave sending an interrupt to the master via dedicated lines ?
Are there some other options I didn't think of ?
Thanks in advance for your help :-)