打印

步进机细分驱动(如图)

[复制链接]
2404|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
caohua6|  楼主 | 2011-7-15 18:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
caohua6|  楼主 | 2011-7-15 18:54 | 只看该作者
[img][/img]

使用特权

评论回复
板凳
wangflw| | 2011-7-17 00:28 | 只看该作者
#ifndef __MoveStepMotor_H__
#define __MoveStepMotor_H__

//#define StepmotorPort P3OUT //P3口为步进电机的接口
#define uchar unsigned char
#define uint unsigned int
//sbit FlagNoEdge = P3^4;//步进电机运动标志,0为到边缘,1为可运
uchar stepkey_x[8]={0x0E,0x0A,0x0B,0x09,0x0D,0x05,0x07,0x06};//motro1正传(A-AB-B-BC-C-CD-D-DA-A)
uchar stepkey_y[8]={0xE0,0XA0,0XB0,0X90,0Xd0,0X50,0X70,0X60};//motro2
uchar stepkeynum_x ;
uchar stepkeynum_y ;
//P1~3 x
//P4~7 Y
void motordelay(uchar a)//5ms
{uint i,j;
for(j=0;j<a;j++)
for(i=0;i<3571;i++);
}

//void MoveStepmotor(uchar FlagLR_x,uchar num_x,uchar FlagUD_y,uchar num_y)
//x电机转向,x转数,y电机转向,y转数//哪个电机,转向,转数


void MoveStepmotor(uchar num_x ,uchar num_y)

{ //sent_byte(0x11);
//sent_byte(stepkey_x[num_x]);
//sent_byte(stepkey_x[num_y]);
P2OUT=stepkey_x[num_x]+stepkey_y[num_y];
motordelay(2);
}


/* if(FlagLR_y==0)//X_motro1正转
{
if(stepkeynum_y == 0 )
stepkeynum_x = 7;
else
stepkeynum_x--;
}
else //X_motor反转
stepkeynum_x = (stepkeynum_x+1)%8;
*/



#endif
这个驱动器好高级啊,做过430驱动进步电机的飘过。。。。

使用特权

评论回复
地板
nongfuxu| | 2011-12-28 12:23 | 只看该作者
以前控制电动平移台控制时都用上面图片那样现成的控制器,记得是400多元钱一个。
前段时间因工作关系,对步进电机细分算法进行了深入学习。等休息过年后搭个电路具体验证一下。
初步估计驱动20W的步进电机,它的硬件成本在50元以内。弄得好的话,以后再有这样的需要时那就节省了400元了。

使用特权

评论回复
5
nongfuxu| | 2011-12-30 10:21 | 只看该作者
若驱动微小步进电机, 用细分法时加PCB板,硬件成本=2.8元+PCB<10元以内.:)
(步进电机除外)

使用特权

评论回复
6
nongfuxu| | 2011-12-30 10:23 | 只看该作者
相应地无细分直接驱动时硬件成本<8.5元. 即细分带来的成本只是MCU芯片改型的成本.

使用特权

评论回复
7
nongfuxu| | 2011-12-30 10:26 | 只看该作者
像驱动电动平移台那样的步进电机,因驱动功率在10W以上,需要加额外的功率H桥输出,那部分的硬件成本会占大头了.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

25

帖子

1

粉丝