I'm planning on using two RF transmitters and receivers with one ATMega328 at each end, so two micro-controllers in total.
What i wanted to know was, is it possible for the micro-controller in my receiver module to 'listen' to two receivers operating at different frequencies ?
Also, will this setup pose any issues on the transmitter side ?
Some additional info:
The transmitter module actually has the ATmega328 attached to the Arduino Duemilanove board
The receiver module has a stand alone ATmega328 micro-controller
I need to know asap before ordering parts in, thanks for all the help in advance !
It depends on the library you use and the RF modules.
For example the very cheap ASK modules (433MHz and 315MHz) can use the VirtualWire, but that library uses a hardware timer and can handle only one receiver. I don't even know if there are libraries that can handle more.
I'm planning on using two RF transmitters and receivers
Why do you want to run 2 tx and 2 rx units?
The Arduino is single tasking. Its going to be hard to run two sets of processing of incoming signals at the same time.
I'd also be a bit concerned about having transmitting and receiving at the same time, even on totally different frequencies, you are likely to get some desensitization of the receiver even if you don't get any actual interference
Especially using the cheap ASK TX and RX modules that people normally use.
Also.. I'm not sure whether you are aware of the shared nature of the use of the ISM bands e.f. 433Mhz and 315Mhz, you are not legally allowed to continuously transmit on these bands. You can only transmit in short bursts and must leave a gap in between (I can't remember the exact ratio, but its something like 10 x more receive time than transmit time, or the number may be even high like 100 x longer receiving)
Apart from the legal aspect, if you transmit for longer than that, you will block other users e.g. wireless remote controls, wireless weather stations, wireless door bells in your area from working.
A better solution is to use an intelligent transceiver module like the NRF24L01 or its lower frequency cousins.
I'm working on a small scale project for my school so i don't think all the frequency transmission guidelines really apply (talking about the transmission : reception). It's not like it's going commercial anytime soon, nor is it being used in public where it will disrupt any other wireless services.
From what I've gathered, it's not an easy task, if not impossible, to use one micro-controller with two RF receivers at different frequencies. Buying a transceiver is not an option since that defeats the whole purpose of my project. What would be the best option moving forward ?
I've also read up on the VirtualWire library and it seems like it's used to communicate between low cost RF transmitters/receivers. I plan on using the Manchester Encoding library for this purpose, do you think that is feasible ?
You can't run virtual wire simultaneously on multiple input pins (different receivers) but you could run them one at a time. If you know that the transmitting side is transmitting on a fixed interval, you could set up a timer and set up the receiver for the next transmission of a given frequency, then switch over to the other in time to receive its message.
Some of these radios have a received signal strength indicator. If yours do, you might be able to read those as inputs to catch the timing of transmissions. Then you can be ready for the next timed transmission.
i don't think all the frequency transmission guidelines really apply
These aren't guidelines they are actually laws in most countries, but I agree that in a confined space you may not interfere with anyone other users because your school is not in a built up area where there are other houses around etc where people have have power monitors or panic buttons etc that they want to use.
I still apart from a technical exercise can't see why you'd not want to use transceiver modules are hardly any more expensive than the typical 433Mhz ASK Tx / Rx pairs.
Please can you describe what you are trying to achieve with your project in general terms rather than focusing on some low level technical aspect which looks increasingly impractical
So the project comprises of a camera providing the input (tracking the user), an image processing software running on a computer (analyzing the position of the user), a transmitter module connected to the computer, and a receiver module attached to the user.
My aim is to try and create a dual channel transmitter/receiver pair for this system. The receiver module has to be compact, as it is meant to be worn comfortably under a hat or something similar, and that's why i am trying to use only one microprocessor.
that's why i am trying to use only one microprocessor.
I don't think anyone suggested you need more than one Arduino at either the transmission or reception end, did they ?
You have also still not described why you need a 2 transmitters and 2 receivers, unless you mean you want to send 2 continuous streams of data to two different client modules.
The key question is why do you need to send a continuous stream of data?
How much data are you sending i.e the data rate in bits per second?
Most systems don't need to send a continuous stream. High speed bursts of data is normally sufficient.
eg. send a packet of data 10 times a second