arduino nano + nrf24

写在前面

在这里插入图片描述

-------------------这是接线图------------------------------------------
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 串口接受不到,可以重新关闭串口再打开;

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值