|
转自大师bigapplesama 的 https://www.arduino.cn/thread-45414-1-1.html
下面的程序上传通过了可是测试时发射端的灯能亮,接收端的灯不亮,哪位大师知道是什么原因吗?
arduino nano与无线模块的连接是8-CSN,7-CE,13-SCK,11-MOSI,12-MISO
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7, 8); // CNS, CE
const byte addresses[][6] = {"00001", "00002"};
String indate="";
String val="";
int led=3;
 
void setup() {
   
  Serial.begin(9600);
  pinMode(led,OUTPUT);
  radio.begin();
  radio.openWritingPipe(addresses[0]); // 00002
  radio.openReadingPipe(1, addresses[1]); // 00001
  radio.setPALevel(RF24_PA_MIN);
   
}
 
void loop() {
  delay(5);
    radio.stopListening();
    while(Serial.available()>0)
  {
    indate+=char(Serial.read());
    delay(2);
    if(Serial.available()<=0)
     {
        Serial.println(indate);
     }
  }
  if(indate.length()>0)
  {
     val=indate; 
     if(val=="b") 
       {
         digitalWrite(led,HIGH);
         const char text1[] = "b";
         radio.write(&text1, sizeof(text1));          
       }
     else if(val=="a")
      {
         digitalWrite(led,LOW);
         const char text2[] = "a";
         radio.write(&text2, sizeof(text2));
      }
   
  } 
    indate="";   //清空indate为下一次输入做准备
}
这边是接收端的代码,读取收到的文本,是b就打开led,是a则关闭led,之前有写了个把读取的文字发送到串口的然后发现串口里
arduino uno的连接是CE <–> Arduino pin 9
CSN <–> Arduino pin 10
SCK <–> Arduino pin 13
MOSI <–> Arduino pin 11
MISO <–> Arduino pin 12
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define led 5
RF24 radio(7, 8); // CNS, CE
const byte addresses[][6] = {"00001", "00002"};
void setup()
pinMode(5, OUTPUT);
radio.begin();
radio.openWritingPipe(addresses[1]); // 00001
radio.openReadingPipe(1, addresses[0]); // 00002
radio.setPALevel(RF24_PA_MIN);
}
void loop() {
radio.startListening();
if (radio.available()) {
char text[32] = "";
radio.read(&text, sizeof(text));
if (text == "a") {
digitalWrite(led, HIGH);
}
if (text == "b") {
digitalWrite(led, LOW);
}
}} |
|