I have a Transmitter sending just a 1-6 send("1");
And a receiver
/*
SimpleReceive
This sketch displays text strings received using VirtualWire
Connect the Receiver data pin to Arduino pin 11
*/
#include <VirtualWire.h>
byte message[VW_MAX_MESSAGE_LEN]; // a buffer to store the incoming messages
byte messageLength = VW_MAX_MESSAGE_LEN; // the size of the message
void setup()
{
Serial.begin(9600);
Serial.println("Device is ready");
// Initialize the IO and ISR
vw_setup(2000); // Bits per sec
vw_rx_start(); // Start the receiver
}
void readSensor(){
if (vw_get_message(message, &messageLength)) // Non-blocking
{
Serial.print("Received: ");
for (int i = 0; i < messageLength; i++){
Serial.write(message[i]);}
Serial.println();
}
}
void loop(){
readSensor();
if (vw_get_message(message, &messageLength) == 1){
Serial.println("button: ONE");
}
else if (vw_get_message(message, &messageLength) == 2){
Serial.println("button: Two");
}
else if (vw_get_message(message, &messageLength) == 3){
Serial.println("button: Three");
}
else if (vw_get_message(message, &messageLength) == 4){
Serial.println("button: Four");
}
else if (vw_get_message(message, &messageLength) == 5){
Serial.println("button: Five");
}
else if (vw_get_message(message, &messageLength) == 6){
Serial.println("button: Six");
}
delay(2000);
}
Now I do get 1-6 with this part of the code in the monitor
if (vw_get_message(message, &messageLength)) // Non-blocking
{
Serial.print("Received: ");
for (int i = 0; i < messageLength; i++){
Serial.write(message[i]);}
Serial.println();
}
}
but I only get
Serial.println("button: ONE");
In the monitor. What do I have wrong?