Hello,
I've been tyring this code out with a cheap 433mhz transmitter/receiver kit from ebay.
Transmitter code (Arduino Mega):
// 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 (mikem@airspayce.com)
// Copyright (C) 2008 Mike McCauley
// $Id: transmitter.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $
#include <VirtualWire.h>
const int led_pin = 13;
const int transmit_pin = 12;
const int receive_pin = 11;
const int transmit_en_pin = 3;
void 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
pinMode(led_pin, OUTPUT);
}
byte count = 1;
void loop()
{
char msg[7] = {'h','e','l','l','o',' ','#'};
msg[6] = count;
digitalWrite(led_pin, HIGH); // Flash a light to show transmitting
vw_send((uint8_t *)msg, 7);
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(led_pin, LOW);
delay(1000);
count = count + 1;
}
Receiver code (Arduino Uno):
// 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@airspayce.com)
// 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 = 13;
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
pinMode(led_pin, OUTPUT);
}
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, dump it.
Serial.print("Got: ");
for (i = 0; i < buflen; i++)
{
Serial.print(buf[i], HEX);
Serial.print(' ');
}
Serial.println();
digitalWrite(led_pin, LOW);
}
}
The transmitter and receiver communicate clearly together. When the transmitter transmits, the onboard led blinks, and when the receiver receives, it's onboard led blinks. But when I open the serial monitor, instead of seeing "Hello" (because I think that's what the code is supposed to send), I get this (in the serial monitor):
setup
Got: 68 65 6C 6C 6F 20 3
Got: 68 65 6C 6C 6F 20 4
Got: 68 65 6C 6C 6F 20 5
Got: 68 65 6C 6C 6F 20 6
Got: 68 65 6C 6C 6F 20 7
Got: 68 65 6C 6C 6F 20 8
Got: 68 65 6C 6C 6F 20 9
Got: 68 65 6C 6C 6F 20 A
Got: 68 65 6C 6C 6F 20 B
Got: 68 65 6C 6C 6F 20 C
Got: 68 65 6C 6C 6F 20 D
Got: 68 65 6C 6C 6F 20 E
Got: 68 65 6C 6C 6F 20 F
Got: 68 65 6C 6C 6F 20 10
Got: 68 65 6C 6C 6F 20 11
Got: 68 65 6C 6C 6F 20 12
Got: 68 65 6C 6C 6F 20 13
Got: 68 65 6C 6C 6F 20 14
Got: 68 65 6C 6C 6F 20 15
Got: 68 65 6C 6C 6F 20 16
Got: 68 65 6C 6C 6F 20 17
Got: 68 65 6C 6C 6F 20 18
Got: 68 65 6C 6C 6F 20 19
Got: 68 65 6C 6C 6F 20 1A
Got: 68 65 6C 6C 6F 20 1B
Got: 68 65 6C 6C 6F 20 1C
Got: 68 65 6C 6C 6F 20 1D
Got: 68 65 6C 6C 6F 20 1E
Got: 68 65 6C 6C 6F 20 1F
Got: 68 65 6C 6C 6F 20 20
Got: 68 65 6C 6C 6F 20 21
Got: 68 65 6C 6C 6F 20 22
Got: 68 65 6C 6C 6F 20 23
Got: 68 65 6C 6C 6F 20 24
Why an I not getting hello in the serial monitor? What is the problem?
Thanks!