首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的两个nRF24出了点奇怪的事

我的两个nRF24出了点奇怪的事
EN

Stack Overflow用户
提问于 2018-09-01 17:50:03
回答 1查看 33关注 0票数 0

基本上,我有两个带有天线的nRF24,我试图让它们变得复杂。

发射机连接到一个带有外部16 16mherz时钟的单机atmega328p,接收器在arduino UNO板上。这是发送器的代码,在第8引脚上,我有一个每秒钟闪烁的LED。

代码语言:javascript
复制
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(7,8); //CE - CSN

const byte address[6] = "00001"; //Pipe

void setup() {
  radio.begin();
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MAX);
  radio.setDataRate(RF24_250KBPS);
  radio.stopListening();
}

void loop() {
  digitalWrite(9, HIGH);
  delay(1000);
  digitalWrite(9, LOW);
  delay(1000);
  const char text[] = "nrftest";
  radio.write(&text, sizeof(text));
}

这是接收者的代码:

代码语言:javascript
复制
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(7,8); //CE - CSN

const int led1 = 5;
const int led2 = 3;
const byte address[6] = "00001";

void setup() {
  // put your setup code here, to run once:
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  radio.begin();
  radio.openReadingPipe(1,address);
  radio.setPALevel(RF24_PA_MAX);
  radio.setDataRate(RF24_250KBPS);
  radio.startListening();
}

void loop() {
  char text[32] = "";
  String transData = "Yolo";
  if (radio.available()) {
    radio.read(&text, sizeof(text));
    transData = String(text);
    if (transData == "nrftest") {
        digitalWrite(led1, HIGH);
        delay(500);
        digitalWrite(led1, LOW);
        delay(500);
      }    
    else{
      digitalWrite(led2, HIGH);
      delay(500);
        digitalWrite(led2, LOW);
        delay(500);
      }
  }
}

现在,下面是发生的事情:

1)当我打开接收器,而不是发射机led2开始闪烁,所以radio.available() ==是真的,这是我第一件不明白的事情;

2),当我把发射机也打开时,led2停止闪烁,什么也没发生;

3) Led1 (通信成功)从不眨眼;

有人能帮我把他们合二为一解释一下发生了什么吗?非常感谢。

这是原理图,我知道这有点糟糕,但我找不到其他软件,对不起:

发射机在左边,接收器在右边

EN

回答 1

Stack Overflow用户

发布于 2018-09-05 15:12:01

我认为led2闪烁的第一件事是因为您正在使用if(radio.available())之后的其他块.这并不意味着它只在没有收音机的情况下才能工作。这就是为什么led2闪烁的原因,因为所有其他情况下,其他块都在运行。第二件事是在char数组中传输整个字符串,这是不可能的。所以你最好把字符串转换成字符..。我希望它能起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52130739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档