|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
毕业设计要做一个会飞的六足机器人,就在设计好的六足机器人上搭建一个四旋翼,为了简化控制就想用51单片机(机器人爬行部分我是用51单片机来控制的,飞行部分不想用摇杆)来模拟飞控接收机来控制QQ飞控。但是QQ飞控一直解不了锁。用51单片机P1^1到P1^4四个通道和QQ飞控(A.E.R 、THR)的四个通道连接,给飞控发送信号,但是就连第一步解锁都做不到,上电之后飞控的灯白色——蓝色——绿色 闪完后就一直保持绿色(没解锁状态,解锁之后会一直闪绿色)。以下是QQ飞控和51单片机的接线:
附上51单片机的程序
#include<reg52.h>
sbit ch1=P1^1;//ail QQ飞控四个通道和51的接线
sbit ch2=P1^2;//ele
sbit ch3=P1^3;//thr
sbit ch4=P1^4;//rud
unsigned int flag;
void init_interrupt(); //中断初始化函数
void delay(int x); //延时函数 x*10us,晶振12m
void main()
{
init_interrupt();
while(1) //四个通道依次给脉宽信号
{
ch1=1;
delay(150);
ch1=0;
delay(5);
ch2=1;
delay(150);
ch2=0;
delay(5);
ch3=1;
delay(90);
ch3=0;
delay(5); //油门拉到最低
ch4=1;
delay(210);
ch4=0;
delay(1385); //方向满舵
}
}
void init_interrupt()
{
EA=1;
TMOD=0X02; //定时器0模式2
TL0=0x88;//10us
TH0=0x88;
ET0=1;
TR0=1;//开始计时
ch1=0;
ch2=0;
ch3=0;
ch4=0;
delay(100);
}
void Timer0_isr(void)interrupt 1 //定时器0中断函数
{
if(flag>0) flag=flag-1;
}
void delay(int x)
{
flag=x;
while(flag!=0)
{;}
}
弄了一个多星期了,一点头绪都没有,为了做毕设才来弄飞控这块的,好多东西都没搞懂,是不是我把飞控想简单了。
我是根据这个来学习和写代码的:https://blog.csdn.net/nicekwell/article/details/53866204 还有这个 http://www.51hei.com/bbs/dpj-97135-1.html
希望有人能指点一下哪错了,谢谢!
|
| |