您的位置:程序门 -> 硬件/嵌入开发 -> 片机/工控



游戏杆->pc机->串口->51单片->步进电机,死机的问题.


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


游戏杆->pc机->串口->51单片->步进电机,死机的问题.
发表于:2007-07-27 20:36:22 楼主
我刚刚接触51单片,最近做个一个实验,想用玩飞行游戏的摇杆控制步进电机.根据节流阀或方向舵的动作,按0---9级的速度来控制步进电机的速度.

现在已经通过vc程序捕捉了游戏杆的数据,然后在timer函数中,根据数据大小通过串口向51发送0---9指令,然后51接收后根据0---9调用不同的延时来改变步进电机的转速.

整个快慢的变化能够实现,但是电机转动几圈后就停下了,然后就死机了,对于串口发过的数据没有响应了,我把驱动电机的代码改成驱动led就没有问题,不会死机.0---9的数据能正确的接收.我想问题还是出在电机的部分,我把调速的功能去掉,改成按下按钮就驱动不按就停,但一直按着就可以转几圈,然后死机,只按一次可以走4步,再按第二次就没响应了,还是死机.

请有经验的朋友给指点一下,谢谢了.
发表于:2007-07-27 21:13:191楼 得分:0
驱动和控制部分有没有隔离,一般情况下是驱动部分干扰控制部分,造成单片机死机
发表于:2007-07-27 21:39:352楼 得分:0
谢谢,具体应该怎么隔离呢?我是用实验板做的实验,步进电机都是板上自带的.

关于隔离我也想了,我把电机拔了,光运行代码也还是不行.

甚至我把电机运行的循环我都去掉,就走4步,还是死机.

另外,用51自己来驱动电机是没问题的.
发表于:2007-07-29 08:24:053楼 得分:0
你首先要了解步进电机的特,可能原因:
1,步进电机的转速太高,达不到你的转速,步进电机有个空载起动速度,不能太大.你可以尝试减小速度和加速度.
2,相位有否接错.
你说的死机是电机不转对吧.


快速检索

最新资讯
热门点击