4四相五线减速步进电机28BYJ48原理仿真及演示程序使用ULN2019A驱动-4页文档资料
- 格式:doc
- 大小:13.00 KB
- 文档页数:4
用L298N驱动器驱动四相五线制步进电机28BYJ-48-5V接线说明
如图所示,逻辑输入四个输入端与单片机相连,电源线的连接,在X宝上购买时都有相应的说明,请参考卖家标注。
此模块能同时驱动两个直流电机,但是只能驱动一个步进电机,本文只说明与四相五线制28BYJ-48-5V电机接法。
电机的原来,参考图2
图1驱动模块
图2,电机原理
通过图2电机原理的说明,我们可以进行连线,,如图所示。
找到对应的电机四相的关系,电机的四线(公共端除外)分别接到L298N模块的OUT1 ,OUT2和OUT3,OUT4输出端,其中公共端线接到5V电源。
因为本步进电机的额定电压为5V,所以从单片机引出5V电压接到驱动模块的12V输入口,5V输入口不接电源
如图所示进行连线,此时电机可能出现振动情况,但是不运转,或者只运转一个角度,此时,拔去四个输入口旁边的使能通道EB的跳线帽(或者EA),此时电机正常运转。
红线接电源5V,橙色电线接P1.3口,黄色电线接P1.2口,粉色电线接P1.1口,蓝色接P1.0口。
{uchar bb;while(aa--){for(bb=0;bb<115;bb++) //1ms基准延时程序{;}}}void delay500us(void){int j;for(j=0;j<57;j++){;}}void beep(void){uchar t;for(t=0;t<100;t++){delay500us();FMQ=!FMQ; //产生脉冲}FMQ=1; //关闭蜂鸣器}void motor_ccw(void){uchar i,j;for(j=0;j<8;j++) //电机旋转一周,不是外面所看到的一周,是里面的传动轮转了一周{if(K3==0){break; //如果K3按下,退出此循环}for(i=0;i<8;i++) //旋转45度{P1=CCW[i];delaynms(10); //调节转速}}}void motor_cw(void){uchar i,j;for(j=0;j<8;j++){if(K3==0){break; //如果K3按下,退出此循环}for(i=0;i<8;i++) //旋转45度{P1=CW[i];delaynms(2); //调节转速}}}void main(void){uchar r;uchar N=64; //因为步进电机是减速步进电机,减速比的1/64 ,//所以N=64时,步进电机主轴转一圈while(1){if(K1==0){beep();for(r=0;r<N;r++){motor_ccw(); //电机逆转if(K3==0){beep();break;}}}else if(K2==0){beep();for(r=0;r<N;r++){motor_cw(); //电机反转if(K3==0){beep();break;}}}elseP1=0xf0; //电机停止}}附:步进电机小知识(转)1.什么是步进电机?步进电机是一种将电脉冲转化为角位移的执行机构。
转载51单⽚机驱动步进电机28BYJ-4851单⽚机驱动步进电机 28BYJ-48步进电机 28BYJ-48介绍和驱动及编程28BYJ-48步进电机:步进电机是⼀种将电脉冲转化为⾓位移的执⾏机构。
通俗⼀点讲:当步进驱动器接收到⼀个脉冲信号,它就驱动步进电机按设定的⽅向转动⼀个固定的⾓度(及步进⾓)。
您可以通过控制脉冲个来控制⾓位移量,从⽽达到准确定位的⽬的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从⽽达到调速的⽬的。
步进电机28BYJ48型四相⼋拍电机,电压为DC5V—DC12V 。
当对步进电机施加⼀系列连续不断的控制脉冲时,它可以连续不断地转动。
每⼀个脉冲信号对应步进电机的某⼀相或两相绕组的通电状态改变⼀次,也就对应转⼦转过⼀定的⾓度(⼀个步距⾓)。
当通电状态的改变完成⼀个循环时,转⼦转过⼀个齿距。
四相步进电机可以在不同的通电⽅式下运⾏,常见的通电⽅式有单(单相绕组通电)四拍(A-B-C-D-A 。
),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。
),⼋拍(A-AB-B-BC-C-CD-D-DA-A 。
)红线接电源5V ,橙⾊电线接P1.3⼝,黄⾊电线接P1.2⼝,粉⾊电线接P1.1⼝,蓝⾊接P1.0⼝。
由于单⽚机接⼝信号不够⼤需要通过ULN2003放⼤再连接到相应的电机接⼝,如下:橙黄 粉蓝⼗六制(P1⼝) 10 0 0 0x08 11 0 0 0x0c 01 0 0 0x04 01 1 0 0x06 00 1 0 0x02 00 1 1 0x03 00 0 1 0x01 10 0 1 0x09顺序刚好相反所以可以定义旋转相序uchar code CCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //逆时钟旋转相序表uchar code CW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //正时钟旋转相序表C 语⾔代码:#include<AT89X52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int uchar code CCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //逆时钟旋转相序表 uchar code CW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //正时钟旋转相序表sbit K1=P3^2; //反转按键 sbit K2=P3^3; //正转按键 sbit K3=P3^4; //停⽌按键 sbit FMQ=P3^6; // 蜂鸣器void delaynms(uint aa){ uchar bb; while(aa--) { for(bb=0;bb<115;bb++) //1ms 基准延时程序 { ; } } }void delay500us(void){ int j; for(j=0;j<57;j++) { ; }}void beep(void){ uchart; for(t=0;t<100;t++) { delay500us(); FMQ=!FMQ; //产⽣脉冲 } FMQ=1; //关闭蜂鸣器}void motor_ccw(void){ uchar i,j; for(j=0;j<8;j++) //电机旋转⼀周,不是外⾯所看到的⼀周,是⾥⾯的传动轮转了⼀周 { if(K3==0) { break; //如果K3按下,退出此循环 } for(i=0;i<8;i++) //旋转45度 { P1=CCW[i]; delaynms(10); //调节转速 } }}void motor_cw(void){ uchar i,j; for(j=0;j<8;j++) { if(K3==0) { break; //如果K3按下,退出此循环 } for(i=0;i<8;i++) //旋转45度 { P1=CW[i]; delaynms(2); //调节转速 } }}void main(void){ uchar r; uchar N=64; //因为步进电机是减速步进电机,减速⽐的1/64 , //所以N=64时,步进电机主轴转⼀圈 while(1) { if(K1==0) { beep(); for(r=0;r<N;r++) { motor_ccw(); //电机逆转 if(K3==0) { beep(); break; } } } elseif(K2==0) { beep(); for(r=0;r<N;r++) { motor_cw(); //电机反转 if(K3==0) { beep(); break; } } } else P1=0xf0; //电机停⽌ }}附:步进电机⼩知识(转)1.什么是步进电机?步进电机是⼀种将电脉冲转化为⾓位移的执⾏机构。
规格书SUBMISSION OF SPECIFICATION产品名称(PRODUCT NAME ):步进电机产品型号(PRODUCT MODEL ):28BYJ48客户部品号(CUSTOMER PART NUMBER ):28BYJ48编U .确认记载项目:AFFIRM THE FOLLOWING ITEMS 1、电性能及参数:1、ETECTRIC PERFORMANCE AND PROPERTIES2、机械性能:2、MECHANICAL PERFORMANCE AND PROPERTIES3、环境性能:3、ENVIRONMENTAL PERFORMANCE AND PROPERTIES4、使用寿命试验:4、ENDURANCE TEST5、摩擦耐久试验:5、FRICTION MECHANISM ENDURANCE TEST编制校对审核DRAWN CHECKED APPROVED 产品供货单位(SUPPLIER ):产品用户单位(CUSTMER ):用户确认(ACKNOWLEDGEMENT ):于年月日确认此规格书ACKNOWLEDGEMENT DATE :/MONTH /DAY /YEAR确认人(ACKNOWLEDGED ):盖章(SEALED ):规格书(Specification)编制日期(ISSUE DATE):2011.03.22型号(MODEL)28BYJ48图号(DWG.No.)28BYJ48(1)(2)电性能及参数(ELECTRICAL PERFORMANCE AND PROPERTIES)1-1相数4相Number of phase4phase1-2驱动方式1-2相励磁单极驱动Drive mode1-2phase excitation unipolar drive1-3步距角 5.6250/64(输出轴),减速比1/64Step angle(output shaft) 5.6250/64(output shaft),gear reduction ration1/64 1-4电压5VDC(电机端子)Voltage5VDC(motor energized voltage)1-5线圈电阻50Ω±7%/相25℃Resistance per phase50Ω±7%/phase at25℃1-6最大空载牵出频率>900ppsMax response frequency>900pps1-7最大空载牵入频率>500ppsMax starting frequency>500pps1-8牵入转距>300gf.cm/5VDC100ppsPull in torque>300gf.cm/5VDC100pps1-9绝缘电阻(Insulation resistance)在引接线和外壳之间施加500VDC,测得绝缘电阻大于10MΩ。
24BYJ48 步进电机使用手册驱动方法及参数插入到开发板的方法:直接插入到LCD12864 位置一、前言:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。
使得在速度、位置等控制领域用步进电机来控制变的非常的简单。
为此,黑金刚开发板套件中首次引入了步进电机技术,采用扩展的方式,方便用户应用掌握。
虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。
它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。
因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。
步进电机的主要特性:1、步进电机必须加驱动才可以运转,驱动信号必须为脉冲信号,没有脉冲的时候,步进电机静止,如果加入适当的脉冲信号,就会以一定的角度(称为步角)转动。
转动的速度和脉冲的频率成正比。
2、黑金刚配套的是28BYJ48 5V 驱动的4 相5 线的步进电机,而且是减速步进电机,减速比为1:64,步进角为5.625/64度。
如果需要转动 1 圈,那么需要360/5.625*64=4096个脉冲信号。
3、步进电机具有瞬间启动和急速停止的优越特性。
4、改变脉冲的顺序,可以方便的改变转动的方向。
因此,目前打印机,绘图仪,机器人,等等设备都以步进电机为动力核心。
二、配套的原理图及程序:1、如果不考虑数据锁存功能,步进电机的扩展板电路可以简化为下图:2、黑金刚套件采用的是5V 步进电机,该步进电机的耗电流为200m a左右,采用uln2003 驱动,驱动端口为P0.0(A),P0.1(B),P0.2(C),P0.3(C)。
正转次序: AB 组--BC 组--CD 组--DA 组(即一个脉冲,正转5.625度);反转次序:AB组--AD组--CD组--CB组(即一个脉冲,正转5.625 度),如下表:表1:正转表表2:反转表3ASM 驱动程序:;*** ****步进电机的驱动********;F O S C = 12M H z;---------------------------------------------------------------------------------; 步进电机的驱动信号必须为脉冲信号!!!转动的速度和脉冲的频率成正比!!!; 本步进电机步进角为5.625 度. 一圈360 度, 需要64 个脉冲完成!!!;---------------------------------------------------------------------------------; A 组线圈对应P0.0; B 组线圈对应P0.1; C 组线圈对应P0.2; D 组线圈对应P0.3; 正转次序:AB 组--BC组--CD组--DA组(即一个脉冲,正转5.625 度);----------------------------------------------------------------------------------ORG 0000HL J M P M A I NORG 0100HM A I N:;----------------------------正转--------------------------M OV R3,#192 ;正转3 圈共192 个脉冲S T A R T:M OV R0,#00HS T A R T1:M OV P0,#00HM OV A,R0M OV D P T R,#T A B LEM OV C A,@A+D P TRJ Z START ;对A 的判断,当A=0 时则转到S T A RTM OV P0,AL C A LL D EL AYI N C R0D J N Z R3,S T A R T1M OV P0,#00HLCALL D EL AY1;-----------------------------反转------------------------M OV R3,#128 ;反转2 圈共128 个脉冲S T A R T2:M OV P0,#00HM OV R0,#05S T A R T3:M OV A,R0M OV D P T R,#T A B LEM OV C A,@A+D P TRJ Z S T A R T2M OV P0,ACALL D EL AYI N C R0D J N Z R3,S T A R T3M OV P0,#00HLCALL D EL AY1L J M P M A I N;---------------------------转速控制-----------------------D EL AY:M OV R7,#10 ;步进电机的转速M3:M OV R6,#248D J N ZR6,$D J N Z R7,M3RET;---------------------------延时控制----------------------D EL AY1:M OV R4,#5 ;2S延时子程序D EL2:M OV R3,#200D EL3:M OV R2,#250D J N ZR2,$ D JN Z R3,D E L3D J N Z R4,DE L2RET;---------------------------正反转表----------------------T A B L E:DB 03H,06H,0C H,09H;正转表DB 00;正转结束DB 03H,09H,0C H,06H;反转表DB 00;反转结束E ND4、C语言驱动程序:/******************************步进电机的驱动************************************* ;F O S C = 12M H z;---------------------------------------------------------------------------------; 步进电机的驱动信号必须为脉冲信号!!!转动的速度和脉冲的频率成正比!!!; 本步进电机步进角为5.625 度. 一圈360 度, 需要64 个脉冲完成!!!;---------------------------------------------------------------------------------; A 组线圈对应P0.0; B 组线圈对应P0.1; C 组线圈对应P0.2; D 组线圈对应P0.3; 正转次序:AB 组--BC组--CD组--DA组(即一个脉冲,正转5.625 度);----------------------------------------------------------------------------------**********************************************************************************/ /*头文件*/#i n c l ud e<r e g52.h>#i n c l ud e<i n t r i n s.h>#d e f i n e u i n t un s i gn e d i n t#d e f i n e u c h a r un s i gn e d c h a r#d e f i n e nop() _nop_()u c h a r code t a b l e1[]={0x03,0x06,0x0c,0x09};/*正转表*/u c h a r code t a b l e2[]={0x03,0x09,0x0c,0x06};/*反转表*/#d e f i n e m o t o r P0vo i d d e l a y(u c h a r m s)/*延时*/{u c h a r j;w h il e(m s--){f o r(j=0;j<250;j++){;}}}vo i d m a i n(){u c h a r i,j;w h il e(1){//正转3 圈共192 个脉冲j=0;f o r(i=0;i<192;i++){m o t o r = 0x00;m o t o r = t a b l e1[j];j++;i f(j>=4)j=0;d e l a y(2);}d e l a y(200);d e l a y(200);d e l a y(200);d e l a y(200);d e l a y(200);//正转2 圈共128 个脉冲j=0;f o r(i=0;i<128;i++){m o t o r = 0x00;m o t o r = t a b l e2[j];j++;i f(j>=4)j=0;d e l a y(2);}d e l a y(200);d e l a y(200);d e l a y(200);d e l a y(200);d e l a y(200);}}。
减速步进电机28BYJ-48的原理如下图:中间部分是转子,由一个永磁体组成,边上的是定子绕组。
当定子的一个绕组通电时,将产生一个方向的电磁场,如果这个磁场的方向和转子磁场方向不在同一条直线上,那么定子和转子的磁场将产生一个扭力将定子扭转。
依次改变绕组的磁场,就可以使步进电机正转或反转(比如通电次序为
A->B->C->D正转,反之则反转)。
而改变磁场切换的时间间隔,就可以控制步进电机的速度了,这就是步进电机的驱动原理。
由于步进电机的驱动电流较大,单片机不能直接驱动,一般都是使用
ULN2003达林顿阵列驱动,当然,使用下拉电阻或三极管也是可以驱动的,只不过效果不是那么好,产生的扭力比较小。
参考:减速步进电机28BYJ-48最简单的驱动方法
28BYJ-48的内部结构请见这里
下面是一个步进电机的演示程序:
#include <reg52.h>
sbit key=P2^0; //按键控制步进电机的方向
unsigned char speed=5; //步进电机的转速
//八拍方式驱动,顺序为A AB B BC C CD D DA
unsigned char code
clockWise[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x0d};
void delay(unsigned char z)
{
unsigned char x,y;
for(x=0;x<z;x++)
for(y=0;y<110;y++);
}
void main()
{
unsigned char i;
while(1)
{
for(i=0;i<8;i++)
{
if(key) //按键未按下,正转
{
P0=clockWise[i];
delay(speed);
}
else //按键按下,反转
{
P0=clockWise[8-i];
delay(speed);
}
}
}
}
Proteus仿真图及Keil源文件下载:
http://brsbox/filebox/down/fc/79bf41133cc59eaf2ca9531a5382557b 演示动画网站:http://hi.baidu/835705302/blog/item/7d9eb519397d7e1d34fa4148.ht ml
希望以上资料对你有所帮助,附励志名言3条:
1、要接受自己行动所带来的责任而非自己成就所带来的荣耀。
2、每个人都必须发展两种重要的能力适应改变与动荡的能力以及为长期目标延缓享乐的能力。
3、将一付好牌打好没有什么了不起能将一付坏牌打好的人才值得钦佩。