代码拉取完成,页面将自动刷新
//MPU6050相关设置
int p2 = 0; //状态开关值
int p3 = 0; //状态开关值
int p4 = 0; //状态开关值
int p5 = 0; //状态开关值
int p6 = 0; //状态开关值
int p7 = 0; //状态开关值
int p8 = 0; //状态开关值
int p9 = 0; //状态开关值
/**控制接收端变量设置start***/
int i=0;
int iii=0;
int ii[3];
int ss[4];
int s=1;//speed
int a=0;// RX init
int h=0;
int p=1;
int op=1;
int staus=0;// 当前状态,为1时可飞
int pp=0;//限飞电压
int limit=90;//pwm最大输出(0-255)
/**控制接收端变量设置end***/
void setup() {
/**MPU6050初始化 end***/
/**串口初始化 start***/
Serial2.begin(9600);
Serial.begin(9600);
/**串口初始化 end***/
/**电机输出口初始化 start***/
pinMode(22,OUTPUT);
pinMode(23,OUTPUT);
pinMode(24,OUTPUT);
pinMode(25,OUTPUT);
pinMode(26,OUTPUT);
pinMode(27,OUTPUT);
pinMode(28,OUTPUT);
pinMode(29,OUTPUT);
/**电机输出口初始化 end***/
pinMode(2, INPUT); //遥控启动引脚初始化
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
}
void loop() {
/**遥控启动 start***/
if ((digitalRead(2) == 0) && (p2 == 0))
{
delay(150);
p2 = 1;
pt(12);
}
/**遥控启动 end***/
/**拨码开关遥控停止 start***/
if ((digitalRead(2) == 1) && (p2 == 1))
{ p2 = 0;
pt(22);
}
if ((digitalRead(3) == 0) && (p3 == 0))
{ delay(150);
p3 = 1;
pt(13);
}
/**遥控启动 end***/
/**拨码开关遥控停止 start***/
if ((digitalRead(3) == 1) && (p3 == 1))
{ p3 = 0;
pt(23);
}
if ((digitalRead(4) == 0) && (p4 == 0))
{ delay(150);
p4 = 1;
pt(14);
}
/**遥控启动 end***/
/**拨码开关遥控停止 start***/
if ((digitalRead(4) == 1) && (p4 == 1))
{ p4 = 0;
pt(24);
}
if ((digitalRead(5) == 0) && (p5 == 0))
{ delay(150);
p5 = 1;
pt(15);
}
/**遥控启动 end***/
/**拨码开关遥控停止 start***/
if ((digitalRead(5) == 1) && (p5 == 1))
{ p5 = 0;
pt(25);
}
if ((digitalRead(6) == 0) && (p6 == 0))
{ delay(150);
p6 = 1;
pt(16);
}
/**遥控启动 end***/
/**拨码开关遥控停止 start***/
if ((digitalRead(6) == 1) && (p6 == 1))
{ p6 = 0;
pt(26);
}
if ((digitalRead(7) == 0) && (p7 == 0))
{ delay(150);
p7 = 1;
pt(17);
}
/**遥控启动 end***/
/**拨码开关遥控停止 start***/
if ((digitalRead(7) == 1) && (p7 == 1))
{
p7 = 0;
pt(27);
}
/**遥控数据接收 start***/
if( Serial2.available()>1)
{ i=Serial2.read();
if(i>0)
math(); //遥控数据处理函数调用
}
}
//遥控数据处理函数
void math()
{
/**停止飞行声音提醒 start***/
/**停止飞行声音提醒 end***/
if(i==38)
{
a=1;
}
if(i==33)
{
if(iii==1)
ss[1]=ii[0];
if(iii==2)
{ss[1]=ii[0]*10+ii[1];
iii=0;
}
}
if(i==37)
{
// x1=ss[1]; //x轴控制值
// y1=ss[2]; //x轴控制值
/// iii=0;
s=ss[1]; //Speed控制值
Serial.println(s);
if(s==22)
digitalWrite(22,HIGH);
if(s==12)
digitalWrite(22,LOW);
if(s==23)
digitalWrite(23,HIGH);
if(s==13)
digitalWrite(23,LOW);
if(s==24)
digitalWrite(24,HIGH);
if(s==14)
digitalWrite(24,LOW);
if(s==25)
digitalWrite(25,HIGH);
if(s==15)
digitalWrite(25,LOW);
if(s==26)
digitalWrite(26,HIGH);
if(s==16)
digitalWrite(26,LOW);
if(s==27)
digitalWrite(27,HIGH);
if(s==17)
digitalWrite(27,LOW);
if(s==28)
digitalWrite(28,HIGH);
if(s==18)
digitalWrite(28,LOW);
if(s==29)
digitalWrite(29,HIGH);
if(s==19)
digitalWrite(29,LOW);
a=0; //数据接收控制符
}
if(i>47)
{
iii=iii+1;
if(iii==1)
ii[0]=i-48;
if(iii==2)
ii[1]=i-48;
if(iii==3)
ii[2]=i-48;
i=0;
}
}
/**遥控停止飞行函数 end***/
/**遥控发送函数 start***/
void pt(int S)
{
/**遥控端发送格式 start***/
Serial2.print("&");//38
Serial2.print(S);
Serial2.print("!");//33
Serial2.print("%");//37
//Serial2.print("%");//37
Serial2.print("&");//38 用于将每次传入的数值读取到,防止缓冲导致读取的不及时!
/**遥控端停止飞行指令 end***/
}
/**低压停止飞行函数 end***/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。