1 Star 4 Fork 0

sam/四轴DIY代码

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
yaokong.ino 3.73 KB
一键复制 编辑 原始数据 按行查看 历史
sam 提交于 2019-05-25 20:49 +08:00 . 重命名文件yaokong为yaokong.ino
/**x轴,y轴,Speed模拟量读取变量定义 start***/
int x=0;
int y=0;
int s=0;
int x1=0;
int y1=0;
int s1=0;
int s2=0;
int ss=0;
/**x轴,y轴,Speed模拟量读取变量定义 end***/
int i=0; //飞控端发回状态值变量
int op=0;//状态开关值
void setup() {
/**串口初始化 start***/
Serial2.begin(115200);
Serial.begin(115200);
/**串口初始化 end***/
pinMode(11,OUTPUT); //蜂鸣器引脚初始化
pinMode(3,INPUT_PULLUP); //遥控启动引脚初始化
/**遥控开机提示 start***/
for(int d=2;d>0;d--)
{
tone(11,2);
delay(d*100);
noTone(11);
delay(100);
}
/**遥控开机提示 end***/
}
void loop() {
/**遥控启动 start***/
if((digitalRead(3)==0)&&(op==0))
{
op=1;
}
/**遥控启动 end***/
/**拨码开关遥控停止 start***/
if((digitalRead(3)==1)&&(op==1))
{for(int d=2;d>0;d--)
{
tone(11,2);
delay(d*200);
noTone(11);
delay(100);
}
op=0;
Serial2.print("$");//36//停止飞行指令
Serial2.print("!");//33 用于将每次传入的数值读取到,防止缓冲导致读取的不及时!
}
/**拨码开关 遥控停止 end***/
/**遥控端接收 start***/
if( Serial2.available()>1)
{ i=Serial2.read();
// Serial.println(i);
}
/**遥控端接收 end***/
/**飞控低压停止飞行 start***/
if(i==49)
{
if(op==1)
{
tone(11,5);
delay(100);
noTone(11);
delay(100);
}
op==0; //遥控停止状态值
i=0; //遥控接收端数值归零
}
/**飞控低压停止飞行 end***/
/**遥控模拟量读取 start***/
x=analogRead(A0);
y=analogRead(A1);
s=analogRead(A2)/7;
/**遥控模拟量读取 end***/
/**x轴,y轴,Speed 遥控模拟量输出值设置 start***/
if(x>950)
x=1;
else if(x<50)
x=2;
else
x=0;
if(y>950)
y=1;
else if(y<50)
y=2;
else
y=0;
if(s<15)
s=0;
if(s>120)
s=120;
/**x轴,y轴,Speed 遥控模拟量输出值设置 end***/
/**遥控发送 start***/
if((s!=s2)&&(op==1))
{
pt(); //调用发送函数
}
/**遥控发送 end***/
}
/**遥控发送函数 start***/
void pt()
{
/**防止速度间差值过大引起剧烈反应 start***/
ss=s1-s;
if(ss<-25)
s1=s-25;
else if(ss>25)
s1=s1-25;
else
s1=s;
/**防止速度间差值过大引起剧烈反应 end***/
x1=x;
y1=y;
s2=s;
if(s!=0)
{
/**遥控端发送格式 start***/
Serial2.print("&");//38
Serial2.print(x1);
Serial2.print("!");//33
Serial2.print(y1);
Serial2.print("!");
Serial2.print(s1);
Serial2.print("!");
Serial2.print("%");//37
Serial2.print("&");//38 用于将每次传入的数值读取到,防止缓冲导致读取的不及时!
/**遥控端发送格式 end***/
}
/**遥控端停止飞行指令 start***/
else
{
if(ss>20)
{
s1=20;
for(s1;s1>0;s1=s1-5)
{
Serial2.print("&");//38
Serial2.print(x1);
Serial2.print("!");//33
Serial2.print(y1);
Serial2.print("!");
Serial2.print(s1);
Serial2.print("!");
Serial2.print("%");//37
Serial2.print("&");//38 用于将每次传入的数值读取到,防止缓冲导致读取的不及时!
delay(10);
}
}
Serial2.print("&");//38
Serial2.print(x1);
Serial2.print("!");//33
Serial2.print(y1);
Serial2.print("!");
Serial2.print(0);
Serial2.print("!");
Serial2.print("%");//37
Serial2.print("&");//38 用于将每次传入的数值读取到,防止缓冲导致读取的不及时!
delay(10);
}
/**遥控端停止飞行指令 end***/
}
/**遥控发送函数 end***/
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/stduino/four_axis_diy_code.git
git@gitee.com:stduino/four_axis_diy_code.git
stduino
four_axis_diy_code
四轴DIY代码
master

搜索帮助