网站大量收购独家精品文档,联系QQ:2885784924

28BYJ-48步进电机资料及调速程序..doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
28BYJ-48步进电机资料及调速程序.

步电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。您可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机28BYJ48型四相八拍电机,电压为DC5V—DC12V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A。。。),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。。。),八拍(A-AB-B-BC-C-CD-D-DA-A。。。)步进电机分三种:永磁式(PM) ,反应式(VR)和混合式(HB)永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度 或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。?红线接电源5V,橙色电线接P1.3口,黄色电线接P1.2口,粉色电线接P1.1口,蓝色接P1.0口。由于单片机接口信号不够大需要通过ULN2003放大再连接到相应的电机接口,如下: ?橙?P1.3 ?黄P1.2 ?粉P1.1 蓝P1.0 十六制(P1口)? ?1 ?0 ?0 ?0 ?0x08 ?1 ?1 ?0 ?0 ?0x0c ?0 ?1 0 ?0 ?0x04 ?0 ?1 ?1 ?0 ?0x06 ?0 ?0 ?1 ?0 ?0x02 ?0 ?0 ?1 ?1 ?0x03 ?0 ?0 ?0 ?1 ?0x01 ?1 ?0 ?0 ?1 ?0x09 运转速度=脉冲频率×60/步进电机分割数/减速比64 步进电机分割数=360/6.625 #includereg52.h #includeintrins.h #define uchar unsigned char #define uint unsigned int #define st_mo P1 sbit k1=P2^0;//正转键 sbit k2=P2^1;//反转键 sbit k3=P2^2;//停止按键 sbit k4=P2^3;//加按键 sbit k5=P2^4;//减按键 sbit dula=P2^5;//定义段码位 sbit wela=P2^6;//定位段码位 sbit alarm=P2^7;//定义蜂鸣器位 uchar ccw[]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //反转 uchar cw[]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //正传 uchar code ducode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//定义段码 uchar code wecode[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//定位段码 uchar tempdata[8],speed=10; void delay(uchar z) //延时1ms { uchar i,j; for(i=z;i0;i--) for(j=110;j0;j--); } void delay500us(void) //延时500us { int i; for(i=0;i58;i++); } void buzzer() //产生报警音 { uchar t; for(t=0;t100;t++) { delay500us(); alarm=!alarm; //产生脉冲 } alarm=1; //关闭蜂鸣器 } void ccw_motor()//反转子程序 { uchar i; for(i=0;i8;i++)//旋转一周 内部旋转一周 { for(i=0;i8;i++) { st_mo=ccw[i]; delay(speed); } } } void cw_motor()//正转子程序 { uchar i; for(i=0;i8;i++)//旋转一周 内

文档评论(0)

gangshou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档