标题:
急求助:单片机控制步进电机无法控制转向
[打印本页]
作者:
夜袭男澡堂
时间:
2017-4-25 10:35
标题:
急求助:单片机控制步进电机无法控制转向
我是个小白,因为要做的模型里需要单片机控制步进电机,所以最近抱佛脚学习了一下,虽然让步进电机动了起来,但是我改了好久也没法控制改变方向,我外面的电路是单片机的P1^0口接了驱动器的PUL-,P1^1口接了驱动器的DIR-,PUL+和DIR+共阳极接+5v,驱动器接的是单轴四线的步进电机
下面是我编的程序,我的目的是想让它先朝一个方向走,5s后改变方向朝另一个方向走,我对速度没有要求,只希望它可以改变方向就好,因为晚上就要交,所以时间很赶,希望各位大神能帮帮忙,帮我看一下出问题的原因以及如何改正,感激不尽
#include <reg52.h>
sbit PUL=P1^0;
sbit DIR=P1^1;
unsigned int time;
void Time1Config();
void main(void)
{
DIR=0;
TMOD=0x01;
TH0=(65536-100)/256;
TL0=(65536-100)%256;
EA=1;
ET0=1;
TR0=1;
while(1);
{
if(time%50000==0&&time!=0)
DIR=1;
}
}
void Time1Config() interrupt 1
{
TH0=(65536-100)/256;
TL0=(65536-100)%256;
if(PUL) PUL=0;
else PUL=1;
time++;
}
作者:
守护神
时间:
2017-4-25 13:11
while循环里应该是DIR取反才能反向,而不是一直置1
作者:
YU15260
时间:
2017-4-25 13:27
你应该设置一个变量控制它的正反转
作者:
YU15260
时间:
2017-4-25 13:28
你应该设置一个变量控制它的正反转,经过5秒就取反
作者:
123456lkjhn
时间:
2017-4-25 14:10
你应该设置一个变量
作者:
cc4988
时间:
2017-4-25 14:33
设置个变量
作者:
夜袭男澡堂
时间:
2017-4-25 15:14
守护神 发表于 2017-4-25 13:11
while循环里应该是DIR取反才能反向,而不是一直置1
我之前令DIR=0时电机能走一个方向,令DIR走1时电机也能走另一个方向,但合到一块从1变到0时却还是只走一个方向,还有0取反不是1吗?
作者:
夜袭男澡堂
时间:
2017-4-25 15:16
YU15260 发表于 2017-4-25 13:27
你应该设置一个变量控制它的正反转
我就是用DIR控制方向啊?您说的是怎么回事呢?
作者:
wuyibin2003
时间:
2017-4-25 15:31
你这个应该是普通直流电机吧 两个口一个口高 另一个口就应该是低电平 不然控制不了
作者:
505451371
时间:
2017-4-25 21:44
其二为
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1