

这个头文件是控制主题得代码
//Transmitter Joystick
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(8, 9); //CE, CSN
const byte address[6] = "00001";
char xyData[32] = "";
String Rjoy, Lpot, Rpot, Ljoy;
int delaytime = 20;
void setup()
{
  Serial.begin(9600);
  radio.begin();
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MIN);
  radio.stopListening();
}
void loop()
{
  Rjoy = analogRead(A1); //Read Right joystick values from VRy
  Lpot = analogRead(A2); //Read Lpot values
  Rpot = analogRead(A3);
  Ljoy = analogRead(A0);
  Serial.print("Ljoy = ");
  Serial.print(Ljoy);
  Serial.print("\t");
  Serial.print("Rjoy = ");
  Serial.print(Rjoy);
  Serial.print("\t");
  Serial.print("Lpot = ");
  Serial.print(Lpot);
  Serial.print("\t");
  Serial.print("Rpot = ");
  Serial.print(Rpot);
  Serial.println();
  //X value
  Rjoy.toCharArray(xyData, 5);          //Put the String (X Value) into a character array
  radio.write(&xyData, sizeof(xyData)); //Send the array data (X-value) to the other NRF24L01 modile
  //Y value
  Lpot.toCharArray(xyData, 5);
  radio.write(&xyData, sizeof(xyData));
  delay(delaytime);
}

这个是遥控器得头文件
//Fan Boat Code
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>
RF24 radio(8, 9); // CE, CSN
const byte address[6] = "00001";
char receivedData[32] = "";
int xAxis, yAxis;
Servo myServo;
int In3 = 7;
int In4 = 6;
int ENB = 5;
int delaytime = 20;
void setup()
{
  pinMode(In3, OUTPUT);
  pinMode(In4, OUTPUT);
  pinMode(ENB, OUTPUT);
  digitalWrite(In3, HIGH);
  digitalWrite(In4, LOW);
  Serial.begin(9600);
  myServo.attach(3);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MIN);
  radio.startListening();
}
void loop()
{
  if (radio.available())
  {
    radio.read(&receivedData, sizeof(receivedData));
    xAxis = atoi(&receivedData[0]);
    delay(delaytime);
    radio.read(&receivedData, sizeof(receivedData));
    yAxis = atoi(&receivedData[0]);
    delay(delaytime);
  }
  int angelV = map(xAxis, 0, 1023, 130, 60);
  int throttle = map(yAxis, 0, 1023, 0, 255);
  myServo.write(angelV);
  analogWrite(ENB, throttle);
  Serial.print(angelV);
  Serial.print("\t");
  Serial.print(yAxis);
  Serial.print("\t");
  Serial.print(throttle);
  Serial.println();
}

首先是对RF芯片芯片得引脚定义
创建一个32位数据得数组

定义了两个变量来存储轴得信息

创建了一个byte

这地方创建了一个舵机对象
ENB看下面得解释,是个使能引脚

EN得意思就是使能
ENA
ENB
.
.
.
ENZ?无所谓了

这个地方是初始化
三个引脚对应舵机,都是输出得功能
记者2个引脚被写入高与低
告知引脚号
这个地方是无线发送特有得功能
先开启这个无线功能()



https://maniacbug.github.io/RF24/classRF24.htmlhttp://www.taichi-maker.com/homepage/reference-index/arduino-library-index/servo-library/servo-attach/

看这段代码很精简
当无线功能开启时,用指针读取接受得数据,算了一下占多少字节

atoi把字符串转换为整型数
延时一个时间
接着是接收Y轴得数据
在延时一下

接着是对这个数据进行了map,把旋钮得量转换为舵机得偏转角度
然后把值传给数字引脚转动相应得角度

打印么有什么好说得
只能说,写得很(๑•̀ㅂ•́)و✧

接下来看遥控器段得代码
定义了发送得引脚

定义了一个数组,来存储数据
4个string来存储摇杆传感器得值,这个值会被aoti转换到整型

这个是指定串口的波特率
还有对无线芯片的一些设置

摇杆有2个10k的电位器,现在有开关传感器就是4个脚

接着打印输出的信息,调试用吧

这段是发送,要延时发送