|
小弟我最近在四线两相调步进电机,用的是L298N驱动,(AVR程序如下)。为什么在驱动刚开始时步进电机能正常运行,过了一定的实现就会出现堵转的情况(就是转一会,卡一下)delays()的时间越短,正常运行的时间越长,刚接触这种步进电机两三天,不太了解使用方法,望各位指点迷津
#define uchar unsigned char
#define uint unsigned int
uint k=0;
//uchar step_F[8]={0x08, 0x09, 0x01, 0x03, 0x02, 0x06, 0x04, 0x0c};
//uchar step_F[8]={0x01, 0x05, 0x04, 0x06, 0x02, 0x0A, 0x08, 0x09};
uchar step_F[8]={0xf1,0xf5,0xf4,0xf6,0xf2,0xfa,0xf8,0xf9}; //两相四线码表正转
//uchar code mm[]={0xf9,0xf8,0xfa,0xf2,0xf6,0xf4,0xf5,0xf1}; //反转
void init_IO(void)
{
PORTA=0X0F;
DDRA=0XFF;
}
void delay(uint k)
{
uint i,j;
for(i=0;i<k;i++)
{
for(j=0;j<3;j++);
}
// if (k>200)
// {
// k--;
// }
}
void main(void)//前进函数
{
uint i=0;
init_IO();
while(1)
{
PORTA=step_F[i];
i++;
if(i==8)
{
i=0;
}
delay(30);
}
}
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)
|