步进电机编程一般有几点。细分数,结构比例,加速度,减速度。最大频率限值,最小起跳频率。
1:原点。
2:速度,距离(相对位置,绝对位置)。速度模式
3:停止。等待
如果多轴的或开关,传感器比较多的位置控制就比较复杂了。有很多变量和跳转。这取决于控制器功能和底层程序开发和运用。
根据你问的情况,应该是写上层程序。中层都已经做好了,写程序需要对使用的芯片和代码非常熟悉,逻辑关系比较了解,运动结构也有一定的认知。
内容:1、本程序用于测试4相步进电机常规驱动
2、需要用跳帽或者杜邦线把信号输出端和对应的步进电机信号输入端连接起来
3、速度不可以调节的过快,不然就没有力矩转动了
4、按s4(设置成独立按键模式)可以控制正反转
------------------------------------------------/
#include
bit Flag;//定义正反转标志位
unsigned char code F_Rotation[4]={0xf1,0xf2,0xf4,0xf8}; //正转表格
unsigned char code B_Rotation[4]={0xf8,0xf4,0xf2,0xf1}; //反转表格
//
/ 延时函数 /
//
void Delay(unsigned int i)//延时
{
while(--i);
}
//
/ 主函数 /
//
main()
{
unsigned char i;
EX1=1; //外部中断0开
IT1=1; //边沿触发
EA=1; //全局中断开
while(!Flag)
{
P0=0x71;//显示 F 标示正转
for(i=0;i<4;i++) //4相
{
P1=F_Rotation[i]; //输出对应的相 可以自行换成反转表格
Delay(500); //改变这个参数可以调整电机转速 ,数字越小,转速越大
}
}
while(Flag)
{
P0=0x7C;//显示 b 标示反转
for(i=0;i<4;i++) //4相
{
P1=B_Rotation[i]; //输出对应的相
Delay(500); //改变这个参数可以调整电机转速 ,数字越小,转速越大
}
}
}
//
/ 中断入口函数 /
//
void ISR_Key(void) interrupt 2 using 1
{
Delay(300);
Flag=!Flag; //s3按下触发一次,标志位取反
}
#include <reg52h>
unsigned char code F_Rotation[4]={0x08,0x10,0x20,0x40};//正转表格
unsigned char code B_Rotation[4]={0x40,0x20,0x10,0x08};//反转表格
void Delay(unsigned int i)//延时
{
while(--i);
}
main()
{
while(1)
{
unsigned char i;
unsigned int j;
for(j=0;j<512;j++)
{
for(i=0;i<4;i++) //4相
{
P1=B_Rotation[i]; //输出对应的相 可以自行换成反转表格
Delay(500); //改变这个参数可以调整电机转速
}
}
for(j=0;j<512;j++)
{
for(i=0;i<4;i++) //4相
{
P1=F_Rotation[i]; //输出对应的相 可以自行换成反转表格
Delay(500); //改变这个参数可以调整电机转速
}
}
}
}
这个程序可以改成控制两个步进电机,第二个使用定时器1就好了。
void T1PulseInt(void) interrupt 3
{
PUL1 = ~PUL1;
TH1 = 0xFD;
TL1 = 0xE8;
}
TB6560为驱动器,需外接脉冲控制器来控制。驱动器调节方法可参考以下资料。
驱动器 *** 作说明
运行电流设置
由 SW1-SW3、S1 四个拨码开关来设定驱动器输出电流,其输出电流共有14 档。具体输出电流的设置,请看电路板面版图说明。
停止电流设置
用户可通过S2 来设置驱动器的自动半流功能。“1”表示停止电流设为
运行电流的20%,“0”表示停止电流设为运行电流的50%。一般用途中应将S2 设成“1”,使得电机和驱动器的发热减少,可靠性提高。
细分设置
由 S3-S4 两个拨码开关来设定驱动器细分数,其共有4档细分。用户设定细分时,应先停止驱动器运行。具体细分数的设置,请看电路板面版图说明。
衰减设置
由 S5-S6 两个拨码开关来设置衰减方式,衰减方式共有4档。选择不同的衰减方式,可获得更好的驱动效果。具体衰减方式的设置,请看电路板面版图说明。
信号接口
CLK+和CLK-为控制脉冲信号正端和负端; DIR+和DIR-为方向信号正端和负端; ENA+和ENA-为使能信号的正端和负端。
电机接口
A+和A-接步进电机A 相绕组的正负端; B+和B-接步进电机B 相绕组的正负端。 当A、B两相绕组调换时,可使电机方向反向。
电源接口
采用直流电源供电,供电电压范围为8V DC-35V DC,建议使用24V DC供电。推荐使用24V/5A开关电源进行供电。
指示灯
红色指示灯为电源(POWER)指示灯,当驱动器上电后红灯常亮。绿色指示灯为运行(RUN)指示灯,该指示灯的亮度会随电机运行速度快慢的变化而变化,电机运行速度越快指示灯越亮。当电机停止时指示灯会常灭或者常亮。
相数是指电机内部的线圈组数,步进电机的相数不同,步进电机的齿数不同,步进电机的步距角也不同。
步进电机每个步距角对应一个脉冲。拍数指步进电机运行时每转一个齿距所需的脉冲数。例如:2相4线步进电机57BYG250-56,它的相数是2,转子齿数是50,步距角是18°则它的每一个转子齿距为:360°/50=72°,拍数为:72°/18°=4(拍)也就是说,步进电机57BYG250-56每转一个齿距需要4个脉冲。
假如:2相4线步进电机57BYG2100-56,它的相数是2,转子齿数是100,步距角是09°则它的每一个转子齿距为:360°/100=36°,拍数为:36°/09°=4(拍)也就是说,步进电机57BYG2100-56每转一个齿距也是需要4个脉冲。
以上就是关于步进电机怎么编写控制程序全部的内容,包括:步进电机怎么编写控制程序、plc怎么控制步进电机驱动器,怎么编程序、求单片机AT89C52控制步进电机的程序 谢谢! 要C语言的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)