文章目录
-
- 写在前面
- 例子1:
- 例子2
- 注:
写在前面
-------------------这是接线图------------------------------------------ nrf 24—> nano
例子1:
转发的链接
这是收到的串口 链接: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 串口无法接受,可重新关闭串口再打开;