NRF24L01+GY-61加速度模块手势控制小车

309d3d8862c8470fb3df082f3dcfbecb.jpg 64d1b4e4238541ff9e3c35d2878133ac.jpg

 a4ee9234bd744ba598f911061c78dd12.jpg

5a600e6a2670414b986c8cac264da0c8.jpg

8f2e436ebf9643fd9da8fc4eb1ec76ef.jpg

有问题请留言


//发送信息  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);  }
 }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佐罗火烈鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值