Skip to main content
Friends don't let friends read unformatted code.
Source Link
JRobert
  • 15.4k
  • 3
  • 25
  • 53
    #include <VirtualWire.h>

    const int led_pin = 11;
    const int transmit_pin = 12;
    const int receive_pin = 2;
    const int transmit_en_pin = 3;
    long distance;
    long time1;
    void setup()
    {
     // Initialise the IO and ISR
    Serial.begin(9600);
    pinMode(9, OUTPUT); 
    pinMode(8, INPUT); 
    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
    }

    byte count = 1;

    void loop()
    {
    digitalWrite(9,LOW); 
    delayMicroseconds(5);
    digitalWrite(9, HIGH); 
    delayMicroseconds(10);
    time1=pulseIn(8, HIGH); 
    distance= int(0.017*time1); 
    Serial.println("Distance ");
    Serial.println(distance);
    Serial.println(" cm");
    delay(1000);
    char msg[1] = {distance};

    msg[0] = count;
    digitalWrite(led_pin, HIGH); // Flash a light to show transmitting
    vw_send((uint8_t *)msg, 3);
    vw_wait_tx(); // Wait until the whole message is gone
    digitalWrite(led_pin, LOW);
    delay(1000);

    }
   #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);
   }
   }
    #include <VirtualWire.h>

    const int led_pin = 11;
    const int transmit_pin = 12;
    const int receive_pin = 2;
    const int transmit_en_pin = 3;
    long distance;
    long time1;
    void setup()
    {
     // Initialise the IO and ISR
    Serial.begin(9600);
    pinMode(9, OUTPUT); 
    pinMode(8, INPUT); 
    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
    }

    byte count = 1;

    void loop()
    {
    digitalWrite(9,LOW); 
    delayMicroseconds(5);
    digitalWrite(9, HIGH); 
    delayMicroseconds(10);
    time1=pulseIn(8, HIGH); 
    distance= int(0.017*time1); 
    Serial.println("Distance ");
    Serial.println(distance);
    Serial.println(" cm");
    delay(1000);
    char msg[1] = {distance};

    msg[0] = count;
    digitalWrite(led_pin, HIGH); // Flash a light to show transmitting
    vw_send((uint8_t *)msg, 3);
    vw_wait_tx(); // Wait until the whole message is gone
    digitalWrite(led_pin, LOW);
    delay(1000);

    }
   #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);
   }
   }
#include <VirtualWire.h>

const int led_pin = 11;
const int transmit_pin = 12;
const int receive_pin = 2;
const int transmit_en_pin = 3;
long distance;
long time1;
void setup()
{
   // Initialise the IO and ISR
   Serial.begin(9600);
   pinMode(9, OUTPUT); 
   pinMode(8, INPUT); 
   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
}

byte count = 1;

void loop()
{
   digitalWrite(9,LOW); 
   delayMicroseconds(5);
   digitalWrite(9, HIGH); 
   delayMicroseconds(10);
   time1=pulseIn(8, HIGH); 
   distance= int(0.017*time1); 
   Serial.println("Distance ");
   Serial.println(distance);
   Serial.println(" cm");
   delay(1000);
   char msg[1] = {distance};

   msg[0] = count;
   digitalWrite(led_pin, HIGH); // Flash a light to show transmitting
   vw_send((uint8_t *)msg, 3);
   vw_wait_tx(); // Wait until the whole message is gone
   digitalWrite(led_pin, LOW);
   delay(1000);

}
#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);
   }
}
Source Link

Transmitting Variables over RF

I'm using the 3715 RF arduino modules and a hc-sr04, and i'm trying to send the distance i get from the ultrasonic over to the arduino with the rf recieving module but i get something like this: enter image description here

Instead of getting this:enter image description here

Here are the code snippets for each arduino:

Arduino TX:

    #include <VirtualWire.h>

    const int led_pin = 11;
    const int transmit_pin = 12;
    const int receive_pin = 2;
    const int transmit_en_pin = 3;
    long distance;
    long time1;
    void setup()
    {
     // Initialise the IO and ISR
    Serial.begin(9600);
    pinMode(9, OUTPUT); 
    pinMode(8, INPUT); 
    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
    }

    byte count = 1;

    void loop()
    {
    digitalWrite(9,LOW); 
    delayMicroseconds(5);
    digitalWrite(9, HIGH); 
    delayMicroseconds(10);
    time1=pulseIn(8, HIGH); 
    distance= int(0.017*time1); 
    Serial.println("Distance ");
    Serial.println(distance);
    Serial.println(" cm");
    delay(1000);
    char msg[1] = {distance};

    msg[0] = count;
    digitalWrite(led_pin, HIGH); // Flash a light to show transmitting
    vw_send((uint8_t *)msg, 3);
    vw_wait_tx(); // Wait until the whole message is gone
    digitalWrite(led_pin, LOW);
    delay(1000);

    }

Arduino RX:

   #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);
   }
   }

I'm open for pointers as i'm pretty much a noob at this, thank you very much for your help! :)