Let's Make Robots!

315Mhz RF Link Kit

Vendor's Description: 


 

 

Simple kit for wireless data transmission via 315mhz band.

Frequency: 315Mhz.

Modulation: ASK

Receiver Data Output: High - 1/2 Vcc, Low - 0.7v

Transmitter Input Voltage: 3-12V (Higher Voltage = Higher Transmissionpower)

Preassembled. No soldering.

 

Kit Content:

1x Receiver board

1x Transmitter board

 

Vendor:

http://shop.boxtec.ch/product_info.php/cPath/59_60/products_id/40260

 

Arduino Library:

VirtualWire: http://www.open.com.au/mikem/arduino/

 

 

 

Transmitter-Code:

 

 

// transmitter.pde
//
// Simple example of how to use VirtualWire to transmit messages
// Implements a simplex (one-way) transmitter with an TX-C1 module
//
// See VirtualWire.h for detailed API docs
// Author: Mike McCauley
// Copyright (C) 2008 Mike McCauley
// $Id: transmitter.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $

#include 
#undef int
#undef abs
#undef double
#undef float
#undef round
void setup()
{
    Serial.begin(9600);	  // Debugging only
    Serial.println("setup");

    // Initialise the IO and ISR
    vw_set_ptt_inverted(true); // Required for DR3100
    vw_setup(2000);	 // Bits per sec
}

void loop()
{
    const char *msg = "LMR;
    digitalWrite(13, true); // Flash a light to show transmitting
    delay(150);
    vw_send((uint8_t *)msg, strlen(msg));
    vw_wait_tx(); // Wait until the whole message is gone
    digitalWrite(13, false);
    delay(1000);
}

Receiver Code:

// 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
// Copyright (C) 2008 Mike McCauley
// $Id: receiver.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $

#include 
#undef int
#undef abs
#undef double
#undef float
#undef round
void setup()
{
    Serial.begin(9600);	// Debugging only
    Serial.println("setup");

    // Initialise the IO and ISR
    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(13, true); // Flash a light to show received good message
	// Message with a good checksum received, dump it.
	Serial.print("Got: ");
	
	for (i = 0; i < buflen; i++)
	{
	    Serial.print((char)buf[i]);
	    Serial.print(" ");
	}
	Serial.println("");
        digitalWrite(13, false);
    }
}

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

What is the thing name as uint8_t ? A variable name ?

A uint8_t is a unsigned integer with 8 bits. 

vw_send(message, length)

Transmit a message. "message" is an array of the bytes to send, and "length" is the number of bytes stored in the array. This function returns immediately and the message is sent slowly by an interrupt-based background process.

 

So, the message must be in an array of 8 bits ? So can you provide me with example on how if I want to send just a number like '2' ?

 

Thanks

Okay, I know that is unsigned integer with 8 bits. How if I just want to send an integer only ? for example number '2' , so I put 0b00000010 or 0x02 ?

Hey friend,

 

I am so curious that if it is that I only can use pin 12 and pin 11 ?

 

How do I set it ?

 

Thanks

In the VirtualWire.h the following two functions are declared:

// Set the digital IO pin to be for transmit data
// Defaults to 12
extern void vw_set_tx_pin(uint8_t pin);

// Set the digital IO pin to be for receive data
// Defaults to 11
extern void vw_set_rx_pin(uint8_t pin);

 

That enables you to overwrite the standard pins. This may look like that:

#include <VirtualWire.h>

void setup()
{
    // Initialise the IO and ISR
    vw_set_ptt_inverted(true); // Required for DR3100
    vw_set_tx_pin(9); // Overwrite the Standard PIN
    vw_setup(2000);	 // Bits per sec
}

where should I refer to get more understanding about the coding and this library ?

 

Thanks

You can check this document to get a good overview about the Virtual Wire library. To find out more about the usage of the library have a look into the Virtual Wire code examples (you should find them in the Arduino IDE).

 

vw_set_ptt_inverted(true);

What is this for ?

And what does this means :
extern void vw_set_rx_pin(uint8_t pin);

Thanks

The extern is a C keyword that makes shure the function keeps the name when linking it into a C++ program. It is a language ideom. Read about it in your favorite C documentation.

Regarding vw_set_ptt_inverted(true); see here.