写在前面
-------------------这是接线图------------------------------------------
nrf 24—> nano
MISO —> D12
MOSI—> D11
SCK —> D13
CE —> D7
CSN —> D8
VCC —>VCC
GND —> GND
例子1:
其中7 8 就是板子上的D7 D8
转发的链接
这是接收到的串口
链接:https://pan.baidu.com/s/1eMzH21F6meFAjg2cQ2UNqg
提取码:jmkb
例子2
/*
nRF24L01 Transmitter
发送端
*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN arduino nano 上的D7 D8
const byte address[6] = "00001"; //通讯地址,单向。
int joystick[5];
void setup() {
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(address); //写入地址。
radio.setPALevel(RF24_PA_MAX); //功放功率,可设为MAX
radio.stopListening(); //遥控器不接收,只负责发射信号
}
void loop(){
int Lx = analogRead(A0); // Left X-axis,左侧摇杆的x轴
joystick[0]=Lx;
int Ly = analogRead(A1); // Left Y-axis,左侧摇杆的y轴
joystick[1]=Ly;
int Pot= analogRead(A3); // Potentialmeter Value, 电位器
joystick[2]=Pot;
int Rx = analogRead(A4); // Right X-axis,右侧摇杆的x轴
joystick[3]=Rx;
int Ry = analogRead(A5); // Right Y-axis,右侧摇杆的y轴
joystick[4]=Ry;
radio.write(joystick, sizeof(joystick)); //打包发送。
//delay(5);
/* 在串口监视器中显示发送信息,debug
Serial.print("Lx: "); Serial.println(joystick[0]);
Serial.print("Ly: "); Serial.println(joystick[1]);
Serial.print("Pot: "); Serial.println(joystick[2]);
Serial.print("Rx: "); Serial.println(joystick[3]);
Serial.print("Ry: "); Serial.println(joystick[4]);
Serial.println();
//delay(1000);
/*/
}
/*
nRF24L01 Receiver:
接收端
*/
#include <Wire.h>
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN arduino nano 上的D7 D8
const byte address[6] = "00001";
int joystick[5];
int Lx; int Ly; int pot; int Rx; int Ry;
int Pot; int L_MotorSpeed; int R_MotorSpeed;
int FAN=4;
void setup() {
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_MAX);
radio.startListening();
pinMode(FAN, OUTPUT);
}
void loop(){
if ( radio.available()){ //如果通讯成功建立
radio.read(joystick, sizeof(joystick)); //读取接收到的摇杆位置
Lx=joystick[0]; Ly=joystick[1]; pot=joystick[2];Rx=joystick[3];Ry=joystick[4];
if(Lx>800)
{
digitalWrite(FAN, HIGH);
Serial.print("fan is high");
}
else{digitalWrite(FAN, LOW); }
Serial.print("Lx: "); Serial.println(Lx);
Serial.print("Ly: "); Serial.println(Ly);
Serial.print("Pot: "); Serial.println(pot);
Serial.print("Rx: "); Serial.println(Rx);
Serial.print("Ry "); Serial.println(Ry);
Serial.println();
;}
//else{ //如果没有通讯,会在串口监视器上报错
// Serial.println("No Radio Connection");}
// delay(500);
}
以上的例子 都可以用
注:
如果出现故障 不能用之类的
1 可能是nrf24l01模块坏了 这个模块经常坏 不怪代码
2 这个是适用 arduino nano CE CSN是7 8 引脚 ,也就是D7 D8
3 串口接受不到,可以重新关闭串口再打开;