How to connect all my projects together.

I've got a big bunch of arduino powered lights in my home, but I'm getting tired of pushing all the buttons to set the modes or turn them on, so I'd like to connect them all together using the arduino USARTs.

What would be the best (relatively cheap) way to do this?

I have some cheap 433MHz transmitter/reciever modules, but I believe you can't just connect these to the usart. There is the VirtualWire library which works with the modules, but the library uses TIMER1 which I use a lot myself..

Another way would be to go RS485 and run a mile of telephone cable through my house, but this isn't the most practical solution either.

Are there any good ways out there to do this?

Use other RF modules instead?
These kind

use SPI to talk to the module, are transceivers for 2-way comms, and be had in longer range versions if needed.

Well, it doesn’t work with the arduino serial communication, but that does look promissing. Thanks!

Also, SPI is a ‘clocked’ signal, right? So the library probably won’t use any timers?

Do you happen to know whether you’d need to “pull” the received information from the modules, or whether it is “pushed” towards the microcontroller?

Push/pull - can be done either way. I'd prefer to have master poll slaves to avoid RF comm's interference, slaves can transmit in the blind tho as a networking method.

If you want to work with serial comm's, then xbee radio's from are a way to go, as low as $17/module. Definitely 3.3V modules. The Nordic's are 3.3V for power, but have 5V tolerant IO.

I can't find anything that mentions using timers at all in the How-Tos or at the Github or Maniacbug library pages, so the best I can say is I don't know about that.

$17 as opposed to $1 (ebay) for the nRF24L01+ modules is quite expensive, so i'll give the latter a shot!

With the push/pull I meant the communication between the modules and the microcontrollers, not the rf communication itself. As in whether you knew if there'd be a buffer in the receiver side of the module, which the microcontroller could then pull out. Like the serial buffer on the arduino's themselves

Yes, the data is buffered like in serial port. See the example sketch here
specifically on the receive side:

if ( radio.available() ) {

That's wonderful! It does exactly what I was looking for.

Thank you very much for your help. :slight_smile: