rf communication - send variable

hello to all

I write because I have a problem with two 433 MHz RF modules. I would like to communicate two arduino (UNO) and (MEGA).

I used the library virtualwire and sketches present example. everything communicates, but on the receiving arduino only see the bytes but not the text. I enclose photos

TRNSMITTER

#include <VirtualWire.h>

const int led_pin = 11;
const int transmit_pin = 8;
const int receive_pin = 52;
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

#include <VirtualWire.h>

const int led_pin = 13;
const int transmit_pin = 12;
const int receive_pin = 52;
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);
    }
}

Cattura.JPG

change

Serial.print(buf*, HEX);[/quote]*
to Serial.print(char(buff [i] ));

I corrected it but now comes quest error

error.JPG

Since I didn't put he line in code tags (like I should have) it posted wrong. I fixed in above post. Sorry.

thanks a lot now it works!

if I wanted to send a variable, such as temperature (temp) of type float, how should I do?

if I wanted to send a variable, such as temperature (temp) of type float, how should I do?

As a string or as binary data? Different processes, depending on your answer.

I do not know .. the easiest way .. I should send this temperature data to another Arduino, and then be able to view it
maybe string?

I do not know .. the easiest way .. I should send this temperature data to another Arduino, and then be able to view it
maybe string?

dtostrf() can convert a float value (in a variable) to a string. You can then send that string.