Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
接收到Arduino射频信号,但未接收到任何信息_Arduino - Fatal编程技术网

接收到Arduino射频信号,但未接收到任何信息

接收到Arduino射频信号,但未接收到任何信息,arduino,Arduino,当我试图通过射频模块发送信号时,我试图通过射频模块发送信息。我收到的信息表明我收到了信号,但我没有通过线路获得任何信息,但没有信息被传递… //接收器代码(莱昂纳多) #包括 void setup() { Serial.begin(9600); pinMode(13,OUTPUT); digitalWrite(13,LOW); vw_setup(2000); vw_set_rx_pin(7); vw_rx_start(); } void loop() { Seri

当我试图通过射频模块发送信号时,我试图通过射频模块发送信息。我收到的信息表明我收到了信号,但我没有通过线路获得任何信息,但没有信息被传递…
//接收器代码(莱昂纳多)
#包括

void setup()
{
 Serial.begin(9600); 
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);

  vw_setup(2000);
  vw_set_rx_pin(7);
  vw_rx_start();
}

void loop()
{
  Serial.println("nothing");
  uint8_t buflen = VW_MAX_MESSAGE_LEN;
  uint8_t buf[buflen];
  if (vw_get_message(buf, &buflen)){
    Serial.print("got it");

    delay(1000);
  }
  if(vw_get_message(buf, &buflen))
  {
    for(int i = 0;i < buflen;i++)

    {
      Serial.println(buf[i]);
      if(buf[i] == '0')
      {
        digitalWrite(13,HIGH);
      }
      else if(buf[i] == '1')
      {
        digitalWrite(13,HIGH);
      }
    }
  }
}
我的模块看起来像这样,Arduino中的
loop()
函数经常运行。不会每次迭代都收到消息。因此,发送方也不能发送每个循环迭代。您可以检查
send()
函数的return函数,查看消息是否已发送

在你的接收者代码中,当你收到一条消息时,你正确地打印“收到了”。但是,然后您测试,看看是否有另一条关于打开LED的消息。没有足够的时间让下一条消息到达

相反,您应该将打印和LED代码放在相同的
if
块中

  #include <VirtualWire.h>

  void setup()
  {

    Serial.begin(9600);

    vw_setup(2000);
    vw_set_tx_pin(7);
  }

  void loop()
  {
    if(1==1)
    {
      char c = '1';

      if(c == '1')
      {
        vw_send((uint8_t *)c, 1);
        Serial.println("SENDING");
      }
      else if(c == '0')
      {
        vw_send((uint8_t *)c, 1);
      }
    }
  }