有问题请留言
//发送信息 TRANSMITTER CODE
#include <NRFLite.h>
#include<SPI.h>
#include<nRF24L01.h>
#include<RF24.h>
const int x_out=A5;
const int y_out=A6;
const int z_out=A7;
RF24 radio(10,9);
/*** Hardware configuration: Set up
nRF24L01 radio on SPI bus plus pins
CE -8
CS-10
SCK-pin13
MISO-pin12
MOSI-pin11
*/
const byte address[6]="00001";
struct data{ int xAxis; int yAxis;int zAxis;};
data send_data;
void setup(){
//put your setup code here,to run once:
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_MIN);
radio.setDataRate(RF24_250KBPS);
radio.stopListening();
}
void loop(){
//put your main code here,to run repeatedly:
send_data.xAxis=analogRead(x_out);
send_data.yAxis=analogRead(y_out);
send_data.zAxis=analogRead(z_out);
radio.write(&send_data,sizeof(data));
Serial.print(analogRead(x_out));
//x范围282-350-429 / 3.3v/
// x y z
//x正向朝下282-358-350
//x正向朝上428-353-352
Serial.print("/");
Serial.print(analogRead(y_out));
//y范围282-351-425 / 3.3v/
// x y z
//y正向朝下359-282-350
//y正向朝上364-425-355
Serial.print("/");
Serial.println(analogRead(z_out));
//z范围212-425-270 / 3.3v/
// x y z
//z正向朝下351-358-600
//z正向朝上351-353-100
}
//接收控制指令 RECEIVER CODE
#include <NRFLite.h>
#include<SPI.h>
#include<nRF24L01.h>
#include<RF24.h>
int ENA =6;
int ENB =5;
int MotorA1 =2;
int MotorA2 =3;
int MotorB1 =4;
int MotorB2 =7;
RF24 radio(8,10);
/*** Hardware configuration: Set up
nRF24L01 radio on SPI bus plus pins
CE -8
CS-10
SCK-pin13
MISO-pin12
MOSI-pin11
*/
const byte address[6]="00001";
struct data{int xAxis;int yAxis;int zAxis;};
data receive_data;
void setup(){
//put your setup code here,to run once:
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0,address);
radio.setPALevel(RF24_PA_MIN);
radio.setDataRate(RF24_250KBPS);
radio.startListening();// 定义 开始侦听
//侦听所有接收地址(发送端的 talking pipes,也就是发送端的发送地址)
//接到数据后,发送反馈到发送信息的发送端的接收地址(发送端指定 listening pipe)
pinMode (ENA,OUTPUT);
pinMode (ENB,OUTPUT);
pinMode (MotorA1,OUTPUT);
pinMode (MotorA2,OUTPUT);
pinMode (MotorB1,OUTPUT);
pinMode (MotorB2,OUTPUT);
pinMode (9,OUTPUT);
}
void loop(){
//put your main code here,to run repeatedly
while(radio.available()){
radio.read(&receive_data,sizeof(data));
//y范围282-351-425 / 3.3v/
// x y z
//y正向朝下359-282-350
//y正向朝上364-425-355
if(receive_data.yAxis>320){
digitalWrite (MotorA1,0);
digitalWrite (MotorA2,1);
digitalWrite (MotorB1,1);
digitalWrite (MotorB2,0);
analogWrite (ENA,180);
analogWrite (ENB,180);
digitalWrite (9,1);
}
else if(receive_data.yAxis<290){
digitalWrite (MotorA1,1);
digitalWrite (MotorA2,0);
digitalWrite (MotorB1,0);
digitalWrite (MotorB2,1);
analogWrite (ENA,180);
analogWrite (ENB,180);
digitalWrite (9,0);
}
//x范围282-350-429 / 3.3v/
// x y z
//x正向朝下282-358-350
//x正向朝上428-353-352
else if(receive_data.xAxis>380){
digitalWrite (MotorA1,1);
digitalWrite (MotorA2,0);
digitalWrite (MotorB1,1);
digitalWrite (MotorB2,0);
analogWrite (ENA,180);
analogWrite (ENB,180);
digitalWrite (9,1);
}
else if(receive_data.xAxis<320){
digitalWrite (MotorA1,0);
digitalWrite (MotorA2,1);
digitalWrite (MotorB1,0);
digitalWrite(MotorB2,1);
analogWrite (ENA,180);
analogWrite (ENB,180);
digitalWrite (9,0);
}
//z范围100-425-600/ 3.3v/
// x y z
//z正向朝下351-358-600
//z正向朝上351-353-100
else{
digitalWrite (MotorA1,LOW);
digitalWrite (MotorA2,LOW);
digitalWrite (MotorB1,LOW);
digitalWrite (MotorB2,LOW);
analogWrite (ENA,0);
analogWrite (ENB,0); }
}
}