接收到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);
}
}
}