march_gxj 发表于 2012-11-18 14:45:13

STM32驱动步进电机的问题,希望大家围观。帮帮我这个菜鸟。

http://user.qzone.qq.com/624577411/infocenter#!app=4&via=QZ.HashRefresh
http://user.qzone.qq.com/624577411/infocenter#!app=4&via=QZ.HashRefresh
我的步进电机的资料在图片上。我外接的电压是12v。接线如上图。我现在遇到的情况是,电机只是不停前后抖动。不前进。用手可以明显地感觉到,电机的前后抖动趋势。这是不是什么失步呢?要怎么检查错误,是不是芯片出问题了,还是源程序出问题了,还是电压不够(我接上6v的时候,电流就已经有0.9多A了。)芯片坏了要怎么查呢?
void Motor_RunZ(u16 Speed)
{
       
        if(TIMER3>=Speed)
        {
                TIMER3=0;
                switch(Motorstep)
                {
                        case 1:
                        {       
                                PCout(6)=0;
                                PCout(7)=1;
                                PCout(8)=1;
                                PCout(9)=1;
                                Motorstep=2;
                        }break;
                        case 2:
                        {
                                PCout(6)=0;
                                PCout(7)=0;
                                PCout(8)=1;
                                PCout(9)=1;
                                Motorstep=3;
                        }break;
                        case 3:
                        {                       
                                PCout(6)=1;
                                PCout(7)=0;
                                PCout(8)=1;
                                PCout(9)=1;
                                Motorstep=4;
                        }break;
                        case 4:
                        {
                                PCout(6)=1;
                                PCout(7)=0;
                                PCout(8)=0;
                                PCout(9)=1;
                                Motorstep=5;
                        }break;
                        case 5:
                        {
                                PCout(6)=1;
                                PCout(7)=1;
                                PCout(8)=0;
                                PCout(9)=1;
                                Motorstep=6;
                        }break;
                        case 6:
                        {
                                PCout(6)=1;
                                PCout(7)=1;
                                PCout(8)=0;
                                PCout(9)=0;
                                Motorstep=7;
                        }break;
                        case 7:
                        {
                                PCout(6)=1;
                                PCout(7)=1;
                                PCout(8)=1;
                                PCout(9)=0;
                                Motorstep=8;
                        }break;
                        case 8:
                        {
                                PCout(6)=0;
                                PCout(7)=1;
                                PCout(8)=1;
                                PCout(9)=0;
                                Motorstep=1;
                        }break;
                }
        }
}
void TIM3_IRQHandler(void) //1ms产生一个中断
{                                                               
        if(TIM3->SR&0X0001)//溢出中断
        {
                TIMER3++;                                                                                                                                           
        }                                          
        TIM3->SR&=~(1<<0);//清除中断标志位           
}

march_gxj 发表于 2012-11-18 14:50:36

我是新手,图片不懂得怎么弄上去。我现在补充一下,电机的参数。相电流1A;相电阻3,5欧;想电感3.5毫亨;经转矩1,25Kg.cm;转动惯量11G。cm^2;
接线应该没什么问题。

march_gxj 发表于 2012-11-22 13:03:44

换相出问题了,我用的步进电机是混合式步进电机。换相顺序不能按照上图的程序来。其次,电压设置过高了。

YOU1 发表于 2012-11-28 09:49:02

本帖最后由 YOU1 于 2012-11-28 09:51 编辑

你用的那种驱动芯片哦?我用驱动器没遇到过这种

march_gxj 发表于 2013-1-19 21:37:00

给的历程都是不适用的 ,后来我自己改写的 得了

mayiqing888 发表于 2013-1-19 21:52:11

打开图片,进到楼主的qq空间了~

xyfaneast 发表于 2013-3-22 10:55:18

来逛逛,正在学习
页: [1]
查看完整版本: STM32驱动步进电机的问题,希望大家围观。帮帮我这个菜鸟。