PaulS, can you show me an example of the simplified code you used?
This is the sender code:
/*
RF Transmitter
Language: Wiring/Arduino
This program reads an analog input on pin 0
and sends the result out as an ASCII-encoded string.
The TX line of the microcontroller is connected to
an RF transmitter that is capable of reading at 2400 bps.
*/
void setup()
{
// open the serial port at 2400 bps:
Serial.begin(2400);
}
void loop()
{
// read the analog input:
int analogValue = analogRead(0);
// send the value out via the transmitter:
Serial.println(analogValue, DEC);
// delay 10ms to allow the analog-to-digital receiver to settle:
delay(100);
}
The receiver code was equally simple. It simply used Serial.read to read the data.
How do you separate the noise from the signal without encoding like VW uses?
Encoding doesn't help with noise. The noise comes from other components near the sending and receiving antennas.
Looking at the spec sheet, I assumed the antennas only worked at 2400 and 4800, but apparently not.
The RF modules only work up to 2400 baud. Regardless of the speed that the sender is trying to send data, the radio itself is designed to have an antenna - on both the transmitter and receiver. A simple coil of wire of the correct length works.
What about Xbee makes it easier to use? Does it handle all the encoding discreetly?
The XBee operates at much higher frequency, and is not as affected by noise. They are bi-directional, so if the receiver fails to receive data correctly, it can ask the sender to send it again. The XBee wraps the data you want to send with some additional data - the number of characters and a checksum, so that the receiver can tell that it received a complete packet, and that the packet was received correctly.
Sorry for all the newbie questions, I spent a good 10 hours researching this on my own, some answers just weren't made clear
No problem. At least you are trying to learn, and make use of the answers you are getting.