Hi.
Products i use are = WRL-10533 && WRL-10535
I bought them to communicate (at low price and place) between a sensor with an ATMEGA328 (5 to 20 meters) and a Arduino UNO. I don’t get it.
I tryed the example code KLP Walkthrough Tutorial and the RFASK_example_code that SFE gives on the product page, but nothing works.
I tryed to use them with newsoftserial, and no matter what i send to the transmitter i only have a high amount of noise on my Rx pin (the receiver). If i send a byte (lets say 255) 3 times, i monitor the serial Rx Port and i never see these 3 255.
Here is a piece of code with newSoftSerial (i use the same UNO for Rx an Tx)
/////// port Série supplémentaire ////////
#include <NewSoftSerial.h>
NewSoftSerial radio(11, 12); // PIN de reception / PIN d'emission
unsigned long currentTime = millis();
unsigned long lastSendTime = 0;
void setup() {
radio.begin(4800);
Serial.begin(4800);
Serial.println("Start");
}
void loop(){
currentTime = millis();
if(currentTime - lastSendTime > 100){
lastSendTime = currentTime;
Serial.println("");
Serial.print("Envoi : ");
for( int T=1; T<4; T++){
byte yo = 255;
radio.print(yo);
}
}
checkFMReceive();
}
void checkFMReceive(){
if(radio.available() > 0) {
byte charFM = radio.read();
int yo = charFM;
Serial.print(yo);
Serial.print(" ");
}
}
I tryed this code with virtualWire, but i don’t see any byte printed in the serial Monitor
#include <VirtualWire.h>
unsigned long currentTime = millis();
unsigned long lastSendTime = 0;
void setup()
{
Serial.begin(4800); // Debugging only
Serial.println("setup");
// Initialise the IO and ISR
vw_setup(4800); // Bits per sec
vw_set_rx_pin(2);
vw_set_tx_pin(3);
vw_rx_start(); // Start the receiver PLL running
}
void loop()
{
currentTime = millis();
if(currentTime - lastSendTime > 100){
lastSendTime = currentTime;
sendMess('A');
sendMess('B');
sendMess('C');
sendMess('D');
sendMess('E');
}
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non-blocking
{
int i;
Serial.println("Got: ");
for (i = 0; i < buflen; i++)
{
Serial.print(buf[i]);
Serial.print(" ");
}
}
}
void sendMess(char quel){
char msg = quel;
vw_send((uint8_t *)msg, quel);
vw_wait_tx(); // Wait until the whole message is gone
}
I simply don’t understand how these RF modules works.
I plugged two 23 cm wire for antennas, but the RF modules are only at 5 cm distance.
I plugged a cap to filter the Vcc of the receiver, but nothing change.
I saw some posts on the subject but nothing helps me.
may i have more luck with a new topic
thank you