I just bought an RF transmitter and receiver for my arduino in order to replace my RF remote control used to control the lights. First I hooked up the receiver to get the pulses of the remote however to no avail. Tried both VirtualWire and RemoteSwitch. The receiver frequency (433Mhz) agrees with that of the remote which is also 433Mhz. As regards receiver velocity from the data sheet it is stated as 5Kbps.
I am not getting any pulses on the serial monitor. Any suggestions? Thanks!
Perhaps if you provided some details - which receiver (link to datasheets are the best source of information), which transmitter, how you've wired them, the sketch you are using....
A?Working voltage: 5.0V +0.5V
B?Working current:?4.5mA (5.0VDC)
C?Working principle: super-regeneration
D?Modulation method: OOK/ASK
E?Frequency range: 250MHz-450MHz
F?Bandwidth: 2MHz (315MHz, having result from testing at lowing the sensitivity 3dBm)
G?Sensitivity: excel –105dBm (50?)
H?Velocity: <5Kbps (at 315MHz and -95dBm)
I?Output signal: TTL electric level signal entire transmission;
J?Aerial length: 24cm (315MHz, 18cm (433.92MHz)
And this is the default receiver example in the VirtualWire Library I'm using as a sketch
// receiver.pde
//
// Simple example of how to use VirtualWire to receive messages
// Implements a simplex (one-way) receiver with an Rx-B1 module
//
// See VirtualWire.h for detailed API docs
// Author: Mike McCauley (mikem@open.com.au)
// Copyright (C) 2008 Mike McCauley
// $Id: receiver.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $
#include <VirtualWire.h>
const int led_pin = 6;
const int transmit_pin = 12;
const int receive_pin = 11;
const int transmit_en_pin = 3;
void setup()
{
delay(1000);
Serial.begin(9600); // Debugging only
Serial.println("setup");
// Initialise the IO and ISR
vw_set_tx_pin(transmit_pin);
vw_set_rx_pin(receive_pin);
vw_set_ptt_pin(transmit_en_pin);
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec
vw_rx_start(); // Start the receiver PLL running
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non-blocking
{
int i;
digitalWrite(led_pin, HIGH); // Flash a light to show received good message
// Message with a good checksum received, print it.
Serial.print("Got: ");
for (i = 0; i < buflen; i++)
{
Serial.print(buf[i], HEX);
Serial.print(' ');
}
Serial.println();
digitalWrite(led_pin, LOW);
}
}
So I connected the receiver to pin 11. The 5V, GND and data have been connected to the receiver as indicated on the receiver itself i.e. VCC, Data, (empty), and GND respectively.
Hmm, perhaps you should put a known test pattern out from the transmitter (1kHz square wave pulses every few seconds or something like that) and investigate the response.