4-四相五线减速步进电机28BYJ-48原理、仿真及演示程序(使用ULN2003A驱动)
- 格式:doc
- 大小:104.50 KB
- 文档页数:3
用L298N驱动器驱动四相五线制步进电机28BYJ-48-5V接线说明
如图所示,逻辑输入四个输入端与单片机相连,电源线的连接,在X宝上购买时都有相应的说明,请参考卖家标注。
此模块能同时驱动两个直流电机,但是只能驱动一个步进电机,本文只说明与四相五线制28BYJ-48-5V电机接法。
电机的原来,参考图2
图1驱动模块
图2,电机原理
通过图2电机原理的说明,我们可以进行连线,,如图所示。
找到对应的电机四相的关系,电机的四线(公共端除外)分别接到L298N模块的OUT1 ,OUT2和OUT3,OUT4输出端,其中公共端线接到5V电源。
因为本步进电机的额定电压为5V,所以从单片机引出5V电压接到驱动模块的12V输入口,5V输入口不接电源
如图所示进行连线,此时电机可能出现振动情况,但是不运转,或者只运转一个角度,此时,拔去四个输入口旁边的使能通道EB的跳线帽(或者EA),此时电机正常运转。
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放大再连接到相应的电机接口,如下:
顺序刚好相反
所以可以定义旋转相序
uchar code CCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //逆时钟旋转相序表uchar code CW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //正时钟旋转相序表。
步进电机是一种将电脉冲转化为角位移的执行机构。
通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。
您能够通过操纵脉冲个来操纵角位移量,从而达到准确信位的目的;同时您能够通过操纵脉冲频率来操纵电机转动的速度和加速度,从而达到调速的目的。
步进电机28BYJ48型四相八拍电机,电压为DC5V—DC12V。
当对步进电机施加一系列持续不断的操纵脉冲时,它能够持续不断地转动。
每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过必然的角度(一个步距角)。
当通电状态的改变完成一个循环时,转子转过一个齿距。
四相步进电性能够在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A。
),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。
),八拍(A-AB-B-BC-C-CD-D-DA-A。
)红线接电源5V,橙色电线接口,黄色电线接口,粉色电线接口,蓝色接口。
由于单片机接口信号不够大需要通过ULN2003放大再连接到相应的电机接口,如下:橙黄粉蓝十六制(P1口)1 0 0 0 0x081 1 0 0 0x0c0 1 0 0 0x040 1 1 0 0x060 0 1 0 0x020 0 1 1 0x030 0 0 1 0x011 0 0 1 0x09顺序恰好相反因此能够概念旋转相序uchar code CCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};0c0c0c么是步进电机?步进电机是一种将电脉冲转化为角位移的执行机构。
通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。
您能够通过操纵脉冲个来操纵角位移量,从而达到准确信位的目的;同时您能够通过操纵脉冲频率来操纵电机转动的速度和加速度,从而达到调速的目的。
2.步进电机分哪几种?步进电机分三种:永磁式(PM),反映式(VR)和混合式(HB)永磁式步进一般为两相,转矩和体积较小,步进角一般为度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为度,但噪声和振动都很大。
28byj-48步进电机的工作原理步进电机是由定子、转子和槽结构组成的电动机。
它的工作原理是通过定子的磁场与转子的磁场之间的相互作用来实现转动的。
首先,定子是由若干对磁极和线圈组成的结构。
每两个相邻的磁极之间都有一个线圈。
这些线圈中通有电流,形成了定子的磁场。
其次,转子是由一系列的磁极组成,这些磁极由永磁体或电磁体组成。
转子的磁场是由永磁体或电磁体生成的。
转子的磁极与定子的磁极之间有一定的间隙。
当给定子通电时,它的磁场会与转子的磁场相互作用。
这个相互作用产生的力将使转子发生转动。
转子的每一步的转动是由定子的线圈依次通电,产生的磁场与转子的磁场相互作用导致的。
通过依次通电不同的线圈,可以使转子旋转一个步长。
步进电机的工作原理主要有两种类型:磁场定位型和磁场转动型。
磁场定位型步进电机是通过开关线圈的方式来实现转动。
当给定子的某个线圈通电时,它的磁场与转子的磁场相互作用,导致转子旋转到一个确定的位置。
然后,切换到下一个线圈,再次通电,使转子旋转到下一个确定位置。
重复这个过程,就可以实现步进电机的连续转动。
磁场转动型步进电机是通过改变线圈的磁极极性来实现转动。
当给定子的某个线圈通电时,它的磁场与转子的磁场相互作用导致转子旋转到一个确定位置。
然后,改变线圈的电流方向,使线圈的磁极极性与转子的磁极极性相反。
这个相反的磁场会使转子再次旋转到下一个确定位置。
重复这个过程,就可以实现步进电机的连续转动。
步进电机具有精准控制和定位功能,因此在很多需要精确定位的应用中得到广泛应用。
例如,步进电机可用于打印机、数码相机、机器人等设备中。
步进电机还可以根据应用要求调整转动速度和转动角度,实现不同的运动模式。
总之,步进电机通过定子的磁场与转子的磁场之间的相互作用来实现转动。
通过通电不同的线圈或改变线圈的磁极极性,可以控制转子的位置和转动方向。
步进电机具有精准控制和定位功能,广泛应用于各种需要精确运动控制的设备中。
步电机是一种将电脉冲转化为角位移的执行机构。
通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。
您可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的.步进电机28BYJ48型四相八拍电机,电压为DC5V—DC12V。
当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。
每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。
当通电状态的改变完成一个循环时,转子转过一个齿距。
四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A—B—C—D—A。
.),双(双相绕组通电)四拍(AB—BC-CD-DA—AB—.。
),八拍(A-AB—B—BC-C—CD—D—DA—A.。
)左——右 CCW旋转方向(轴伸端视)步进电机分三种:永磁式(PM) ,反应式(VR)和混合式(HB)永磁式步进一般为两相,转矩和体积较小,步进角一般为7。
5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大.在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。
它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度.这种步进电机的应用最为广泛.红线接电源5V,橙色电线接P1.3口,黄色电线接P1.2口,粉色电线接P1.1口,蓝色接P1。
0口.由于单片机接口信号不够大需要通过ULN2003放大再连接到相应的电机接口,如下:步进电机驱动橙 A P1.3黄B P1。
2粉C P1.1蓝D P1.0十六制(P1口)10 0 0 0x081 1 0 0 0x0c0 1 0 0 0x040 1 1 0 0x060 0 1 0 0x020 0 1 1 0x030 0 0 1 0x011 0 0 1 0x09速度计算公式:运转速度=脉冲频率×60/步进电机分割数/减速比64步进电机分割数=360/6.625调速程序:#include<reg52.h>#include<intrins。
规格书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Ω。
步进电机是一种将电脉冲转化为角位移的执行机构。
通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。
您可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机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口)1 0 0 0 0x081 1 0 0 0x0c0 1 0 0 0x040 1 1 0 0x060 0 1 0 0x020 0 1 1 0x030 0 0 1 0x011 0 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 intuchar 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){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.什么是步进电机?步进电机是一种将电脉冲转化为角位移的执行机构。
28BYJ48型步进电机的控制方法2011-03-13 23:02:00|分类:单片机技术|举报|字号订阅前不久弄到一只28BYJ48型步进电机,没有资料,从网上查找,搜到一些资料,但按照网上介绍的程序实验,都没有成功。
后来根据资料的原理部分,试着自己编写了一段程序,经过多次实验调试,终于成功了。
哈哈,收获不小步进电机是一种将电脉冲转化为角位移的执行设备。
通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。
我们可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时我们可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
28BYJ48型步进电机是四相八拍电机,电压为DC5V~DC12V。
当对步进电机按一定顺序施加一系列连续不断的控制脉冲时,它可以连续不断地转动。
每一个脉冲信号使得步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度。
当通电状态的改变完成一个循环时,转子转过一个齿距。
四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A……),双(双相绕组通电)四拍(AB-BC-CD-DA-AB……),四相八拍(A-AB-B-BC-C-CD-D-DA-A……)。
本例是使用四相八拍驱动方式实现的。
下面是我写的C语言控制程序实现28BYJ48型步进电机正转五圈然后倒转五圈的效果://************************************************* *******************************//*标题:步进电机正反转演示程序 *//*文件:步进电机正反转演示.C *//*日期: 2011-3-13 *//*环境:使用自制单片机最小系统板测试通过 *//************************************************* *******************************//*描述: 28BYJ-48步进电机正反转控制 *//*电机使用端口:P1.0、P1.1、P1.2、P1.3 *//*单双八拍工作方式:A-AB-B-BC-C-CD-D-DA *//************************************************* *******************************#include <reg51.h>#include <intrins.h>//**********************正向旋转相序表*****************************unsigned char codeFFW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //**********************反向旋转相序表*****************************unsigned char codeREV[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //***********************延时子程序********************************void delay(unsigned int t){unsigned int k;while(t--){for(k=0; k<125; k++){}}}//**********************步进电机正转******************************void motor_ffw(unsigned int n) {unsigned char i;unsigned int j;for (j=0; j<8*64*n; j++){for (i=0; i<8; i++){P1 = FFW[i];delay(1);}}}//*********************步进电机反转******************************** void motor_rev(unsigned int n) {unsigned char i;unsigned int j;for (j=0; j<8*64*n; j++){for (i=0; i<8; i++){P1 = REV[i];delay(1);}}}//*************************主程序********************************* main(){while(1){motor_ffw(5); //电机正转5圈delay(1000);motor_rev(5); //电机反转5圈delay(1000);}}下面是赠送的几篇网络励志文章需要的便宜可以好好阅读下,不需要的朋友可以下载后编辑删除!!谢谢!!出路出路,走出去才有路“出路出路,走出去才有路。
减速步进电机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 DAunsigned char codeclockWise[]={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、生命对某些人来说是美丽的,这些人的一生都为某个目标而奋斗。
28byj-48步进电机的工作原理
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。
)四相步进电机有两种运行方式,一、四相四拍;二、四相八拍。
要想搞清楚四相八拍运行方式下步进电机的转速如果计算,需要先清楚两个基本概念。
1、拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即A-AB-B-BC-C-CD-D-DA-A.2、步距角:对应一个脉冲信号,电机转子转过的角位移用θ表示。
θ=360度(转子齿数J*运行拍数),以常规二、四相,转子齿为50齿电机为例。
四拍运行时步距角为θ=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为θ=360度/(50*8)=0.9度(俗称半步)。
这两个概念清楚后,我们再来计算转速,以基本步距角1.8°的步进电机为例(现在市场上常规的二、四相混合式步进电机基本步距角都是1.8°),四相八拍运行方式下,每接收一个脉冲信号,转过0.9°,如果每秒钟接收400个脉冲,那么转速为每秒400X0.9°=360°,相当与每秒钟转一圈,每分钟60转。
拆解28BYJ-48步进电机
28BYJ-48型步进电机是学习单片机控制技术中经常使用的一种步进电机,其内部结构是怎样的呢?如果你有好奇心,那就跟我一起拆解观察一番。
下面就是将要拆解的28BYJ-48步进电机。
打开上盖可以看到减速齿轮组件。
拆下来的减速齿轮组件。
取出步进电机的转子,看似很简单的部件。
取出步进电机的定子线圈,这可是步进电机最重要的部件。
仔细看看这两组线圈。
步进电机就剩下一个外壳了。
简单吧?呵呵,其实步进电机并不神秘。
下面是28BYJ-48步进电机的尺寸及参数数据,供大家参考。
1212步进电机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放大再连接到相应的电机接口,如下:橙 A黄B P1.2粉C P1.1蓝D P1.0十六制(P1口)P1.310 0 0 0x081 1 0 0 0x0c0 1 0 0 0x040 1 1 0 0x060 0 1 0 0x020 0 1 1 0x030 0 0 1 0x011 0 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 intuchar 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){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.什么是步进电机?步进电机是一种将电脉冲转化为角位移的执行机构。
减速步进电机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源文件下载:
/filebox/down/fc/79bf41133cc59eaf2ca9531a5382557 b
/835705302/blog/item/7d9eb519397d7e1d34fa4148.html。