Go Down

Topic: modulo rf 433 un emisor y múltiple receptor  (Read 752 times) previous topic - next topic

123Angelica_Duque

hola compañeros, espero puedan ayudarme a resolver esta duda:

estoy trabajando con los modulos rf de 433 MHz (adjunto la imagen)

Tengo el código donde envío un paquete de 50 datos y en el receptor sabemos la cantidad de datos recibidos y perdidos imprimiendolos en el monitor serie:


EMISOR:

Code: [Select]
#include  <VirtualWire.h>
const int dataPin = 9;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  vw_setup (2000);
  vw_set_tx_pin(dataPin);

}

void loop() {
  // put your main code here, to run repeatedly:
    const char msgChar[] =  "A";
    const char msgChar1[] =  "a";
    const char msgChar2[] =  "b";

   
     vw_send((uint8_t *)msgChar1, strlen(msgChar1));
     vw_wait_tx();//tiempo de esperaa enviar el siguiente mensaje

       for (int i = 0; i < 49; i++)
  {
     vw_send((uint8_t *)msgChar, strlen(msgChar));
     vw_wait_tx();//tiempo de esperaa enviar el siguiente mensaje
     //delay (300);
  }
     vw_send((uint8_t *)msgChar2, strlen(msgChar2));
     vw_wait_tx();//tiempo de esperaa enviar el siguiente mensaje

     vw_send((uint8_t *)msgChar1, strlen(msgChar1));
     vw_wait_tx();//tiempo de esperaa enviar el siguiente mensaje
 
  delay (10000);
//  while (Serial.available() > 0)
//  {
//    char data[1];
//    data[0] = Serial.read();
//    vw_send(( uint8_t*)data, sizeof(data));
//    vw_wait_tx();
//  }

 
  //delay (200);




RECEPTOR:
Code: [Select]
#include <VirtualWire.h>
const int dataPin1 = 9;
//const int dataPin2 = 10;
const int ledPin = 12;

int count = 0;
//int resul1 = 0;
//int result2 = 0;
int ISSR = 0;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  vw_setup(2000);
  vw_set_rx_pin(dataPin1);
  vw_rx_start();
//  vw_set_rx_pin(dataPin2);
//  vw_rx_start();

  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, true);
  delay(300);
  digitalWrite(ledPin, false);
 
}

void loop() {
  // put your main code here, to run repeatedly:
  uint8_t data;
  uint8_t dataLength=1;
 
  int m;
  if(vw_get_message(&data, &dataLength))
  {
    if((char)data=='a')
    {
    Serial.println ("holissss");
    count=0;
    }
    else if((char)data=='b'){
      ISSR = 50 - count;
          Serial.print ("ISSR= ");
          Serial.println (ISSR);
      }
    ++count;
    Serial.print ("count=");
    Serial.println (count);
   
 
     }
   }



El problema está en que ahora quiero conectar dos receptores en un mismo arduino y saber la información recibida por ambos

surbyte

No se puede. Solo permite conexiones punto a punto.

Si quieres mas nodos debes usar algo como nRF24l01

Go Up