28BYJ-48 四相八拍 减速步进电机
- 格式:pdf
- 大小:368.67 KB
- 文档页数:11
拆解28BYJ-48步进电机
28BYJ-48型步进电机是学习单片机控制技术中经常使用的一种步进电机,其内部结构是怎样的呢?如果你有好奇心,那就跟我一起拆解观察一番。
下面就是将要拆解的28BYJ-48步进电机。
打开上盖可以看到减速齿轮组件。
拆下来的减速齿轮组件。
取出步进电机的转子,看似很简单的部件。
取出步进电机的定子线圈,这可是步进电机最重要的部件。
仔细看看这两组线圈。
步进电机就剩下一个外壳了。
简单吧?呵呵,其实步进电机并不神秘。
下面是28BYJ-48步进电机的尺寸及参数数据,供大家参考。
基于52单片机的28BYJ48步进电机运用52单片机是一种常见的单片机芯片,具有强大的处理能力和丰富的IO口,广泛用于各种电子产品中。
28BYJ48步进电机是一种小型步进电机,结构简单、价格低廉,常用于精密定位和控制系统。
本文将介绍基于52单片机的28BYJ48步进电机的应用。
一、28BYJ48步进电机介绍28BYJ48步进电机是一种4相5线小型步进电机,具有步距角度为5.625度、步相精度高、转速可调等特点。
它由一个固定齿状转子和一个旋转齿状定子组成,通过改变定子的相序来实现转动。
由于其结构简单、价格低廉、定位精度高等特点,广泛应用于机器人、摄像头云台、家电等领域。
二、52单片机的应用52单片机是一种基于MCS-51指令集的高性能8位单片机电路板,具有128KB的存储空间和23个可编程IO口。
它可以用于控制步进电机的转向、转速、步距等参数,实现精确的定位和运动控制。
三、基于52单片机的28BYJ48步进电机应用1.简单控制通过编程设置52单片机的IO口输出电平,可以实现对步进电机的简单控制。
例如,通过高低电平交替输出,可以实现电机的正反转。
2.精密定位利用52单片机的定时器和计数器功能,可以精确计算电机转动的步数,从而实现精密定位。
通过编程控制电机按照指定的步距和步数转动,可以将其用于精密位置控制系统。
3.运动控制结合传感器和52单片机的输入输出功能,可以实现对步进电机的运动控制。
例如,通过接入光电传感器或编码器,可以实时监测电机的转动角度和速度,并通过编程控制电机的转动,实现对运动速度和位置的精确控制。
4.多电机协同控制通过串行通信或CAN总线等方式,多个步进电机可以与单个52单片机进行协同控制。
通过编程设置不同电机的控制参数,可以实现多电机的同步运动和协同工作。
5.扩展应用利用52单片机的扩展IO口和外部模块接口,可以实现更多功能的扩展应用。
例如,结合显示模块和键盘模块,可以实现对步进电机的参数设置和状态显示;结合无线通信模块,可以实现远程控制和监控等功能。
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);}}。
红线接电源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.什么是步进电机?步进电机是一种将电脉冲转化为角位移的执行机构。
/******************************28BYJ-48步进电机测试程序*************************************;FOSC = 12MHz; 步进电机的驱动信号必须为脉冲信号转动的速度和脉冲的频率成正比; 本步进电机步进角为 5.625 半步5.625/2度,减速比为32. 一圈 360 度 , 需要512 个脉冲完成 360=N*22.5/32;---------------------------------------------------------------------------------; A 组线圈对应 P2.0; B 组线圈对应 P2.1; C 组线圈对应 P2.2; D 组线圈对应 P2.3;----------------------------------------------------------------------------------********************************************************************* *************/#include <reg52.h>#include <lm1602.h>#define uint unsigned int#define uchar unsigned charuint i,j,k ;uint N=512;uchar code single_pos[4]={0x08,0x04,0x02,0x01}; /*单四拍正转表*/uchar code single_rev[4]={0x01,0x02,0x04,0x08}; /*单四拍反转表*/uchar code double_pos[4]={0x06,0x03,0x09,0x0c}; /*双四拍反转表*/uchar code double_rev[4]={0x0c,0x09,0x03,0x06}; /*双四拍反转表*/uchar code eight_pos[8]={0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e}; /*八拍驱动正转*/uchar code eight_rev[8]={0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06}; /*八拍驱动正转*/void delay(uint z);void m_single_pos();void m_single_rev();void m_double_pos();void m_double_rev();void m_eight_pos();void m_eight_rev();void main(){while(1){m_single_pos(); //单四拍正转360度delay(200);m_single_rev(); //单四拍反转360度delay(200);m_double_pos(); //双四拍正转360度delay(200);m_double_rev(); //双四拍反转360度delay(200);m_eight_pos(); //八拍驱动正转360度delay(200);m_eight_rev(); //八拍驱动反转360度delay(200);}}void delay(uint z) /*延时z毫秒*/{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--) ;}/******************************单四拍驱动正转(N*22.5/32)*************************************/void m_single_pos(){for(k=0;k<N;k++){for(i=0;i<4;i++) //单四拍一个脉冲转子转动5.625度,四拍共22.5度{P2=single_pos[i] ;delay(5) ; //适当延时,保证转子转动时间,延时过短会丢拍}}}/******************************单四拍驱动反转(N*22.5/32)*************************************/void m_single_rev(){for(k=0;k<N;k++){for(i=0;i<4;i++) //单四拍一个脉冲转子转动5.625度,四拍共22.5度{P2=single_rev[i] ;delay(5) ;}}}/******************************双四拍驱动正转(N*22.5/32)*************************************/void m_double_pos(){for(k=0;k<N;k++){for(i=0;i<4;i++) //双四拍一个脉冲转子转动5.625度,四拍共22.5度,力矩较单四拍更大{P2=double_pos[i] ;delay(5) ;}}}/******************************双四拍驱动反转(N*22.5/32)*************************************/void m_double_rev(){for(k=0;k<N;k++){for(i=0;i<4;i++) //双四拍一个脉冲转子转动5.625度,四拍共22.5度力矩较单四拍更大{P2=double_rev[i] ;delay(5) ;}}}/******************************八拍驱动正转(N*22.5/32)*************************************/void m_eight_pos(){for(k=0;k<N;k++){for(i=0;i<8;i++) //八拍一个脉冲转子转动5.625/2度,八拍共22.5度{P2=eight_pos[i] ;delay(5) ;}}}/******************************八拍驱动反转(N*22.5/32)*************************************/void m_eight_rev(){for(k=0;k<N;k++){for(i=0;i<8;i++) //八拍一个脉冲转子转动5.625/2度,八拍共22.5度{P2=eight_rev[i] ;delay(5) ;}}}。
一、 特点:此产品为28BYJ系列步进电机,小体积、高转速、底振动。
具 有结构紧凑、力矩大、输入功率小、噪音小、 使用方便等特点。
二、 用途:产品广泛用于空调器、电动器械、冷暖通阀门、热水器自动调温系统、自动化仪器、舞台灯光、安防视频监控、及单片机学习开发等领域。
三、 极限参数:表1参数 最小值 最大值 单位 工作温度 1 +60 ℃ 储存温度 -20 +75 ℃四、 技术参数:表2参数 值 参数 值电压VDC 5 空载牵入频率Hz≥500直流电阻25°C Ω±7% 32空载牵出频率Hz≥600步距角 5.625°/64 绝缘耐压V 1S600减速比 1/64 温升 K ≤55 牵入转矩(100Hz时)gf.cm250 噪音 dB ≤40 自定位转矩gf.cm300 驱动方式 四相八拍连接线长:230mm,采用UL 26AWG 1061的电源线五、 外形尺寸:(单位:mm)六:接线示意图接线指示图红5黄3粉红2蓝1橙4七:分配方式八:铭牌13245连线 序号--蓝-黄粉红橙--红导线 颜色231+++-------64+5++分配顺序78++XXXXXXXXX 060000015表示此产品为2006年生产,编号为0000015的产品。
)印刷批号,从0000001开始逐张递增以当年的年份为编码,如2006年,用06表示XX XXXXXXXSTEP MOTOR28BYJ-485V DC。
一、特点:
此产品为28BYJ系列步进电机,小体积、高转速、底振动。
具有结构紧凑、力矩大、输入功率小、噪音小、使用方便等特点。
二、用途:
产品广泛用于空调器、电动器械、冷暖通阀门、热水器自动调温系统、自动化仪器、舞台灯光、安防视频监控、及单片机学习开发等领域。
三、极限参数:
表1
四、技术参数:
表2
五、 外形尺寸:(单位:mm)
六:接线示意图
接线指示图红5
黄3粉红2
蓝1
橙4
七:分配方式
八:铭牌
1
3245连线 序号--蓝
-
黄粉红橙--红导线 颜色231+++-------64+5++分配顺序
78+
+XXXXXXXXX 060000015表示此产品为2006年生产,编号为0000015
的产品。
)
印刷批号,从0000001开始逐张递增
以当年的年份为编码,如2006年,用06表示XX XXXXXXX
STEP MOTOR
28BYJ-48
5V DC。
步进电机是一种将电脉冲转化为角位移的执行机构。
通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。
您可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机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);}}下面是赠送的几篇网络励志文章需要的便宜可以好好阅读下,不需要的朋友可以下载后编辑删除!!谢谢!!出路出路,走出去才有路“出路出路,走出去才有路。
24BYJ48步进电机使用手册外型尺寸驱动方法及参数左要技术参数电机型号V栢数相电阻Q±10Z步距角度减速比 起动转矩10OP. P. S g ・cm 起动频率 P.P.S 定位转矩 g. cm嫁擦转矩 g. cm 嘈声 dB 绝缘介电殘度 28BYJ - 485 4 300 5. 625/64 1:64 $300 =550 A 300——<35 600VAC10土0.5■ oo1oo 1900(UG DT]6.54321&线颜色 1 234 5 67 8 6红 + + + 十十十十 4祀 -一-3黄 — --2粉--—I 蓝••- —驱动方式:<4 1-2相駆动〉 —CCW 方向旋转(轴伸殆视〉插入到开发板的方法:W接插入到LCD 12864位買一、前言:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决丁•脉冲信号的频率和脉冲数,而不受负载变化的彫响,即给电机加•个脉冲信号,电机则转过•个步距角。
这•线性关系的存在,加上步进电机只有周期性的谋差而无累枳误差等特点。
便得在速度、位置等控制领域用步进电机来控制变的非常的简单为此,黑金刚开发板套件中首次引入了步进电机技术,采用扩展的方式,方便用户应用常握。
虽然步进电机已被广泛地应川,但步进电机并不能彖普通的直流电机,交流电机在常规下使用。
它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。
因此用好步进电机却非易爭,它涉及到机械、电机、电了及计算机等许多匸业知识。
步进电机的主要特性:]、步进电机必须加驳动4训以运转,张动信号必须为脉冲信号,没仃脉冲的时候, 步讲巾机静止,如果加入适洱的脉冲信計,就矣以工常1的怡:(爲:儿必伯)皓m转动的凍府月恤汕的烦率成|勺@2、黑金刚配套的是28BYJ48 5V驱动的电?5线的步进电机,而且是减速步进电机,减速比为1: 64,步进角_为5.625/64度。
28byj-48步进电机的工作原理
28BYJ-48步进电机是一种直流电机,它的工作原理基于脉冲信号控制。
它包含四个线圈,每个线圈在不同时刻被激活或取消激活,从而使电机的转子按照一定的步长旋转。
具体来说,当一个线圈被通电时,它会产生一个磁场,将电机中的永磁体吸引到该线圈的位置。
当这个线圈被取消通电时,它的磁场消失,永磁体就会被另一个线圈的磁场吸引到下一个步骤的位置。
通过依次激活和取消激活四个线圈,电机就可以以一定的步长旋转。
28BYJ-48步进电机通常使用驱动电路来控制其旋转,这种电路会向电机发送脉冲信号,每个脉冲信号都会让电机旋转一个固定的步长。
通过改变脉冲信号的频率和方向,可以实现对电机旋转的控制。
工程施工质量验收的行为和标准,提高施工质量和建筑工程的安全性、可靠性和持久性,保障人民群众的生命财产安全。
同时,该标准也有利于推动建筑行业的现代化和标准化,促进建筑工程质量管理的科学化和规范化。
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步进电机解读和驱动及编程28BYJ-48步进电机外观:步进电动机的步进角是5.625度(注意,是电机)。
因为这个是带减速齿轮的,所以最后在输出轴上的步进角是5.625/64=0.08789度(因为减速比是1/64)。
对于电机,是64个脉冲为一圈。
对于输出轴,是4096个脉冲为一圈(64×64)。
电机转64圈,输出轴转1圈。
2相电机基本步距角为1.8°.在不细分的情况下走一步是需要1个脉冲.走一圈360°就需要200个脉冲.步进电机是一种将电脉冲转化为角位移的执行机构。
通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。
您可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机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}; //正时钟旋转相序表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(uintaa){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){uchari,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){uchari,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.什么是步进电机?步进电机是一种将电脉冲转化为角位移的执行机构。