导航:首页 > 编程知识 > 同步步进电机如何编程

同步步进电机如何编程

发布时间:2024-05-18 15:24:53

⑴ 姹傚ぇ绁炲府蹇欑紪鍐欏崟鐗囨満鎺у埗姝ヨ繘鐢垫満C璇瑷缂栫▼锛屽浘鐗囧備笅锛孉T89C51鍗曠墖鏈哄洓鐩稿叓鎷嶏紝ULN2004椹卞姩鑺鐗

#include "reg52.h"
//Motor
sbit A = P2^0; //瀹氫箟绠¤剼
sbit b = P2^1;
sbit C = P2^2;
sbit D = P2^3;

///////////////////////////////////////
//姝ヨ繘鐢垫満椹卞姩
unsigned char MotorStep=0;
unsigned int MotorTimer = 0;
unsigned int MotorDelay,Speed=1,TIM,CT;

#define speed 8 // 璋冩暣閫熷害 鏁板间笉瑕佽剧殑澶浣 浣庝簡浼氬紩璧烽渿鍔ㄣ

/*****************************************************
* 鍒濆嬪寲椹杈 *
******************************************************/
void InitMotor()
{
A = 1;
b = 1;
C = 1;
D = 1;
}

void SetMotor()
{
// if(Speed == 0) return;

MotorDelay=Speed; //璋冩暣閫熷害
switch(MotorStep)
{
case 0:
if(TIM) // A
{
A = 0; //0xf1
b = 1;
C = 1;
D = 1;
MotorStep = 1;
TIM=0;
}
break;

case 1: // AB
if(TIM)
{
A = 0; //0xf3
b = 0;
C = 1;
D = 1;
MotorStep = 2;
TIM=0;
}
break;

case 2: //B
if(TIM)
{

A = 1;
b = 0; //0xf2
C = 1;
D = 1;

MotorStep = 3;
TIM=0;
}
break;

case 3: //BC
if(TIM)
{
A = 1;
b = 0; //0xf6
C = 0;
D = 1;
MotorStep = 4;
TIM=0;
}
break;
case 4: //C
if(TIM)
{
A = 1;
b = 1; //0xf4
C = 0;
D = 1;
MotorStep = 5;
TIM=0;
}
break;
case 5: //CD
if(TIM)
{
A = 1;
b = 1; //0xfc
C = 0;
D = 0;
MotorStep = 6;
TIM=0;
}
break;
case 6: //D
if(TIM)
{
A = 1;
b = 1; //0xf8
C = 1;
D = 0;
MotorStep = 7;
TIM=0;
}
break;
case 7: //DA
if(TIM)
{
A = 0;
b = 1; //0xf9
C = 1;
D = 0;
MotorStep = 0;
TIM=0;
}
break;

}

}

void system_Ini()
{
TMOD|= 0x11;
TH0=0xDC; //11.0592M
TL0=0x00;
IE = 0x8A;
TR0 = 1;

}

main()
{ system_Ini();
InitMotor();
while(1)
{
SetMotor();

}

}

/************************************************
* *
* 瀹氭椂涓鏂寤舵椂 *
************************************************/
void Tzd(void) interrupt 1
{
TH0 = 0xfe; //11.0592
TL0 = 0x33;

if( CT++==speed)
{TIM=1;
CT=0;
}
}

⑵ 步进电机怎么编写控制程序

步进电机编程一般有几点。细分数,结构比例,加速度,减速度。最大频率限值,最小起跳频率。
1:原点。
2:速度,距离(相对位置,绝对位置)。速度模式
3:停止。等待
如果多轴的或开关,传感器比较多的位置控制就比较复杂了。有很多变量和跳转。这取决于控制器功能和底层程序开发和运用。
根据你问的情况,应该是写上层程序。中层都已经做好了,写程序需要对使用的芯片和代码非常熟悉,逻辑关系比较了解,运动结构也有一定的认知。

⑶ 关于51单片机控制步进电机编程(c语言),求助

#include<reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

ucharkey_l,key,i;

ucharcodetemp1[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};

ucharcodetemp2[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};

ucharcodeaa[16]=":";

ucharcodesmg[]="";

sbite=P2^6;

sbitrs=P2^4;

sbitrw=P2^5;

voiddelay(inttt)

{

while(tt--);

}

voidw_cmd(uchardd)

{

rs=0;

rw=0;

e=0;

delay(50);

P0=dd;

e=1;

delay(50);

e=0;

delay(50);

}

voidw_dat(uchardd)

{

rs=1;

rw=0;

e=0;

delay(50);

P0=dd;

e=1;

delay(50);

e=0;

}

voidinit(ucharsmg4[],uchartime[])

{

w_cmd(0x38);

delay(2000);

w_cmd(0x38);

delay(500);

w_cmd(0x38);//注意顺序,设置工作方式,显示模式设置

delay(500);

w_cmd(0x08);//注意顺序,关闭显示

w_cmd(0x01);//清屏

w_cmd(0x07);//光标·画面滚动模式设置

w_cmd(0x0c);//显示及光标模式设置

w_cmd(0x80);//

for(i=0;i<16;i++)

w_dat(time[i]);

w_cmd(0x80+0X40);

for(i=0;i<16;i++)

w_dat(smg4[i]);

}

voidTb(ucharsmg[],ucharn,uchars,ucharl,uchard)

{

unsignedcharm;

w_cmd(0x82);

for(m=n;m<s;m++)

w_dat(smg[m]);

w_cmd(0x80+0X42);

for(m=l;m<d;m++)

w_dat(smg[m]);

}

voidmain()

{

init(aa,aa);

while(1)

{

P1=0xf0;

key_l=P1;

if(key_l!=0xf0)

{

delay(100);

if(key_l!=0xf0)

{

P1=key_l|0x0f;

key=P1;

}

}

switch(key)

{

case0xee:Tb(smg,0,10,11,21);

for(i=0;i<8;i++)

{

P2=temp1[i];

delay(500);

}

break;

case0xde:Tb(smg,0,10,19,29);

for(i=0;i<8;i++)

{

P2=temp1[i];

delay(300);

}

break;

case0xbe:Tb(smg,0,10,30,40);

for(i=0;i<8;i++)

{

P2=temp1[i];

delay(100);

}

break;

case0x7e:P2=0xff;Tb(smg,0,10,39,49);break;

case0xed:Tb(smg,50,60,11,21);

for(i=0;i<8;i++)

{

P2=temp2[i];

delay(200);

}

break;

case0xdd:Tb(smg,50,60,19,29);

for(i=0;i<8;i++)

{

P2=temp2[i];

delay(120);

}

break;

case0xbd:P2=0xff;Tb(smg,50,60,40,50);break;

}

}

}

⑷ 三菱PLC控制步进电机的最简单的程序

M206:正转

M207:反转

Y0:脉冲输出

Y1:反转信号

D4200:频率(用于控制速度,数据来源于触摸屏)

K99999999:脉冲数量

K100:加速时间

向左转|向右转

如图,这个就是一个步进电机的正反转的运行,Y0接步进驱动器的脉冲,Y1接步进驱动器的方向,M0为ON时正转,M1为ON时反转,D0是脉冲的频率,D1是脉冲的个数。

移动速度和脉冲频率有关,在细分数一定的条件下,频率越高速度越快,行走的距离和脉冲个数有关,脉冲个数越多,行走距离越长,(在三菱这个指令中,脉冲个数为0时,是一直运行,相当于无限个数),具体的移动速度和行走距离得根据你的设置(频率,细分数,脉冲个数等)和硬件(包括步进电机的步距角,丝杆的丝距,齿轮组的齿轮比,齿轮带的传送比等)来调节。

⑸ 用c语言程序实现步进电机的正反转加减速的编程

内容:1、本程序用于测试4相步进电机常规驱动
2、需要用跳帽或者杜邦线把信号输出端和对应的步进电机信号输入端连接起来
3、速度不可以调节的过快,不然就没有力矩转动了
4、按s4(设置成独立按键模式)可以控制正反转
------------------------------------------------*/

#include <reg52.h>

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按下触发一次,标志位取反

}

⑹ 三菱 步进电机 PLC编程

PLC控制步进电机的实例(图与程序)

⑺ 给位大神,控制步进电机自动工作,不用plc和单片机。最好用电脑控制或者控制器。该如何控制,如何编程

这个问题好解决,可以使用表控TPC8-8TD的控制器来控制步进电机,特点就是简单、易行。使用表格设置方式,用鼠标在表格上设置,无需专业技术。这个型号的表控是8路输入8路输出的,具有4路脉冲输出端,最多可以同时控制4个步进电机。还有个特点是:不仅可以控制步进电机,还可以同时控制气缸、交流电机等更多的负载同时工作。

下图是功能设置表的图片:

上图是控制单台步进电机的接线示意图,表控由Y1输出脉冲信号,由Y输出方向信号到步进电机驱动器。还有2轴和4轴的接线图这里从略,需要的可以到网上下载。

阅读全文

与同步步进电机如何编程相关的资料

热点内容
什么海外网站可以看限制片 浏览:596
指尖见app在哪里下载 浏览:367
java聊天室课程设计 浏览:670
responsejavascript 浏览:71
如何从杀毒软件里面恢复出文件 浏览:972
越狱iphone如何备份 浏览:124
苹果四S万能钥匙怎么破不开 浏览:603
网络打印机共享怎么连接 浏览:313
fme系统找不到指定文件 浏览:301
iphoneid和密码忘了怎么办 浏览:238
苹果电脑优盘里的文件如何加密 浏览:284
word标题名和文件名一致 浏览:957
excel修改后的文件保持了怎么恢复 浏览:340
社保网络认证怎么弄 浏览:92
苹果手机怎么传数据到新手机相册 浏览:50
5s升级ios92无服务 浏览:354
ubuntu翻译工具 浏览:665
wifi安装教程 浏览:398
苹果有些qq文件打不开 浏览:139
微信分身图片缓存在哪个文件 浏览:544

友情链接