步进电机控制原理图及PCB
图文解析PIC单片机之步进电机

图 3 步进电机的单极性直流驱动电路
在实际应用中一般驱动路数不止一路,用图 3 的分立电路体积大,各路参数一 致 性 难 以 保 障 。最 好 用 现 成 的 集 成 电 路 作 为 多 路 驱 动 。常 用 的 小 型 步 进 电 机 驱 动电路可以用 ULN2003 或 ULN2803。我们的实验板上用的是 ULN2003。 ULN2003 是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作 电 压 高 、温 度 范 围 宽 、带 负 载 能 力 强 等 特 点 ,适 应 于 各 类 要 求 高 速 大 功 率 驱 动 的系统。
4、步进电动机只能通过脉冲电源供电才能运行,它不能直接使用交流电源和 直流电源。
那我们该如何来控制步进电机转动呢?直流电机我们只要在电机两极加上电 压 ,电 机 马 上 转 动 ,但 步 进 电 机 并 非 这 样 ,它 是 数 字 控 制 方 式 ,它 将 电 脉 冲 信
号 转 变 成 角 位 移 ,即 给 一 个 脉 冲 信 号 ,步 进 电 动 机 就 转 动 一 个 角 度 ,因 此 非 常 适合单片机的控制。 一 般 一 个 完 整 的 步 进 电 机 控 制 系 统 包 括 控 制 器 、驱 动 器 、电 机 三 部 分 。框 图 如 图 1 所示:
通 过 前 文 的 原 理 介 绍 ,我 们 已 经 对 步 进 电 机 的 特 性 以 及 工 作 原 理 有 了 大 致 地 了 解 ,但 当 我 们 拿 到 一 个 步 进 电 机 时 要 正 确 地 应 用 它 还 是 一 时 不 知 如 何 下 手 ,比 如 我 们 现 在 要 控 制 电 机 正 转 、反 转 、高 速 运 转 、低 速 运 转 时 ,需 要 怎 么 办 呢 ? 要 控 制 步 进 电 机 进 行 正 反 转 ,已 不 是 像 直 流 电 机 这 么 简 单 ,在 电 机 两 端 加 上 正 反相电源就可以了,而是通过输出不同规律的“正反转”时序脉冲来实现控制。 现 在 ,我 们 来 一 起 看 一 下 如 何 进 行 步 进 电 机 正 反 转 以 及 转 动 速 度 的 控 制 ,通 过 一个实例,相信会给大家带来一个感性的认识。
L297 L298步进电机控制电路图

L297的工作原理介绍L297是意大利SGS半导体公司生产的步进电机专用控制器,它能产生4相控制信号,可用于计算机控制的两相双极和四相单相步进电机,能够用单四拍、双四拍、四相八拍方式控制步进电机。
芯片内的PWM斩波器电路可开关模式下调节步进电机绕组中的电机绕组中的电流。
该集成电路采用了SGS公司的模拟/数字兼容的I2L技术,使用5V的电源电压,全部信号的连接都与TFL/CMOS或集电极开路的晶体管兼容。
L297的芯片引脚特别紧凑,采用双列直插20脚塑封封装,其引脚见图1,内部方框见图2。
在图2所示的L297的内部方框图中。
变换器是一个重要组成部分。
变换器由一个三倍计算器加某些组合逻辑电路组成,产生一个基本的八格雷码(顺序如图3所示)。
由变换器产生4个输出信号送给后面的输出逻辑部分,输出逻辑提供禁止和斩波器功能所需的相序。
为了获得电动机良好的速度和转矩特性,相序信号是通过2个PWM斩波器控制电动波器包含有一个比较器、一个触发器和一个外部检测电阻,如图4所示,晶片内部的通用振荡器提供斩波频率脉冲。
每个斩波器的触发器由振荡器的脉冲调节,当负载电流提高时检测电阻上的电压相对提高,当电压达到Uref时(Uref是根据峰值负载电流而定的),将触发器重置,切断输出,直至第二个振荡脉冲到来、此线路的输出(即触发器Q输出)是一恒定速率的PWM信号,L297的CONTROL端的输入决定斩波器对相位线A,B,C,D或抑制线INH1和INH2起作用。
CONTROL为高电平时,对A,B,C,D有抑制作用;为低电平时,则对抑制线INH1和INH2有抑制作用,从而可对电动机和转矩进行控制。
图1 L297引脚图图2 L297内部方框电路图图3 L297变换器换出的八步雷格码(顺时针旋转)图4 斩波器线路图5 多个L297同步工作连接图Symbol 符号Parameter 参数Value 数值Unit 单位Vs Supply voltage 电源电压10 V Vi Input signals 输入信号7 V Ptot Total power dissipation 总功率耗散(Tamb = 70℃) 1 W Tstg, Tj Storage and junction temperature 储存和结温-40 to + 150 ℃L297 ELECTRICAL CHARACTERISTICS (Refer to the block diagram Tamb = 25℃, Vs = 5V unless otherwiseSymbol 符号Parameter 参数Test conditions测试条件最小典型最大单位Vs Supply voltage (pin 12) 电源电压 4.75 7 VIs Quiescent supply current静态电源电流(引脚12)Outputs floating 50 80 mAVi Input voltage输入电压(引脚11,17,18,19,20)Low 0.6 VHigh 2 Vs VIi Input current输入电流(引脚11,17,18,19,20)Vi = L 100 μAVi = H 10 μAVen Enable input voltage 使能输入电压(引脚Low 1.3 V1脚(SYNG)——斩波器输出端。
步进电机-驱动PROTEL_原理图

步进电机-驱动PROTEL_原理图U0139P10/TP00238P11/TP01337P12P02436P13P03535P14P04634P15P05733P16P0 6832BP17P07M1321INT1P201222MotorINT0P2123P221524T1P231425T0P2426P253127E A/VPP2628P2719X118X2C39100.1uFC1RESETRXD11CapCapTXD1730CapPol1C40.1uF9RDALE/P1629100uFC2)WRPSEN100uF+6VAT89S52Cap Pol1( +5D1D2DiodeDiode VCCU159PortIN1VSS74PortIN2VS10PortIN3122PortIN4OUT1电压可以不一样的3D3D4vsOUT2613DiodeDiode和PortEN AOUT3是用来驱动电机的;在此一定要注意需要两路直流电源来对1114vssPortEN BOUT4Vs系统供电。
脚14ISENA815GNDISEN BL298N芯片的;而通过一路全桥来驱动另一路电机。
通过一路全桥来驱动一路电机,同理的地是是同一个地;out4out2VsL298N和和out3out1 对应IN1,IN2对应是用来驱动Vss脚 IN3,IN4注意单片机的地和VCCR8R9R10Res2Res2Res210K10K10KS3S2S1SW-PBSW-PBSW-PBIN2PortENAVCCC6Cap30pFY1XTALC521Cap30pFR4100uFRes2RESETC710KSW-PBCap Pol1VCCP1.0,P1.1,P1.2用来设计三个按键,key1,key2,key3;P2.0,P2.1用来与L298N中的IN1,IN2相连接;控制步进电机的正转、反转和停止; P2.2是用来控制电机的使能的,接在ENA上;如要实现电机的正传、反转的加减速就要对P2.2即ENA脚给PWM信号比如还要设置两个按键key4和key5来控制直流电机的加速和减速;比如有如下函数; /*********************************************************/ uchar NUM0=600;//全局变量uchar Flag=0;//清零标志位;对Ms清零;/*id time0_init(void){TMOD=0x01; //16 位计数器/定时器,定时器0;TH0=(65536-1000)/256; //AT89S52为12M晶振,计数1200才产生1ms TL0=(65536-1000)%256;EA=1; //开启总中断ET0=1; //开启定时器1中断TR0=1; //开启定时器1,定时器一允许}void time0_int(void) interrupt 1 {H0=(65536-1000)/256; // AT89S52为12M晶振,计数1200才产生1ms TL0=(65536-1000)%256;Ms=NUM0}*/for(i=0;i< Ms;i++){ENA=1;}else if(i= Ms;i<=1200;i++){ENA=0;Flag=1;}if(flag){Ms= NUM0;}/*****************************************************************/ KEYADD_SUB(){if(key4==0) //加速按键{delayms(2) ;//while(key1==0);Ms++;//正脉宽加一if(Ms>=1200)Ms=1200;//最高速度}if(key5==0)//减速按键{delayms(2) ;//while(key2==0);Ms-- //脉宽减一if(Ms<=0)Ms=0; //停止}}/***************************************************************/ /***************************************************************/ 下面是控制程序;经现场调试,可行;程序如下:/************************************************************/#include<reg52.h>#include"delay.h"#define uchar unsigned char#define uint unsigned int//*********************//sbit ENA = P2^2; //驱动芯片使能,若为0则电机停止;sbit IN1 = P2^1; //控制电机正转和反转sbit IN2 = P2^0; //控制电机正转和反转sbit key1 = P1^0; //此键按下,电机正转;IN1=1;IN2=0 ;ENA=1 sbit key2 = P1^1; //此键按下,电机反转;IN1=0,IN2=1 ;ENA=1 sbit key3 = P1^2; //此键按下,电机刹停; IN1=1,IN2=1 ;ENA=1 //*********************// int motor_change_mank=0;// 按键设置//**********************// uint keylogo(){if(key1==0){delayms(2) ;//while(key1==0);motor_change_mank=1;//正转标志位}if(key2==0){delayms(2) ;//while(key2==0);motor_change_mank=2;//反转标志位}if(key3==0){delayms(2) ;//while(key3==0);motor_change_mank=0;//刹停标志位}return(motor_change_mank);}//**********************// //控制驱动芯片函数//**********************// void execute_motor() { switch(motor_change_mank){case 0: //刹停标志位{IN1 = 1;IN2 = 1;ENA = 1;}break;case 1: //正转标志位{IN1 = 1;IN2 = 0;ENA = 1;}break;case 2: //反转标志位{IN1 = 0;IN2 = 1;ENA = 1;}break;default:break;}}//**********************// void main(){while(1){keylogo();execute_motor();}}/******************************************************************* ***//******************************************************************* ***/#define uint unsigned intvoid delayms(uint n) {int i;for(;n>0;n--)for(i=0;i<1;i++);}/******************************************************************* ***//******************************************************************* ***/#ifndef delay_h#define delay_h#define uint unsigned intextern void delayms(uint n);#endif/******************************************************************* ****//******************************************************************* ****/对如驱动芯片L298N的中文资料我这里有很多,你在论文中阐述时要抓住要点;进行简短的说明;对于调速的问题也有第二种方法;就是对驱动芯片的功率电源Vs进行改变电压;可以用DAC进行控制,如用单片机控制DAC,是输出的模拟电压可通过按键来升高和降低;这样在电机正传或者反转时只要Vs所给的电压升高或者降低则电机的转速就会增加或者减少;这样亦不失为一种好的控制直流电机转速的方法;就是成本稍高而已~//////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// 或者用下面的一个程序略作修改即可;/*1、学习目的:利用定时器产生PWM,了解原理和使用方法2、硬件要求:LED灯定时器3、试验现象:LED灯由亮到灭,由灭到亮逐步变化,也就是调光现象*/#include <reg52.h>sbit LED = P1^2;unsigned char CYCLE; //定义周期该数字X基准定时时间如果是10 则周期是10 x 0.1ms unsigned char PWM_ON ;//定义高电平时间void delay(unsigned int cnt){while(--cnt);}main(){bit Flag;TMOD |=0x01;TH0=(65536-100)/256;//定时器设置 0.1ms in 12M crystalTL0=(65536-100)%256;//定时0.1mSIE= 0x82; //打开中断TR0=1;CYCLE = 10;// 时间可以调整这个是10调整 8位PWM就是256步while(!Flag){delay(20000); //延时时间,从一个亮度到下一个亮度的间隔时间,速度快就能看到连续效果PWM_ON++; //这个使用较长延时,以便能看清楚变化过程if(PWM_ON == CYCLE){ //这个里可以添加其他程序如到最亮时候控制设备Flag=1;}}while(Flag) //亮度递减同上,是个相反的过程{delay(20000);PWM_ON--;if(PWM_ON == 0){Flag=0;}}}/********************************/ /* 定时中断 *//********************************/ void tim(void) interrupt 1 using 1 { static unsigned char count; // TH0=(65536-100)/256;TL0=(65536-100)%256;//定时0.1mSif (count==PWM_ON){LED = 1; //灯灭}count++;if(count == CYCLE){count=0;if(PWM_ON!=0) //如果左右时间是0 保持原来状态LED = 0;//灯亮}}。
步进电机控制系统原理

图7 CH250三相双三拍接法
图8 CH250三相六拍接法
CH250环形脉冲分配器的功能关系如表1所列
讨论:
• 单片机输出步进脉冲后,再由脉冲分配电路按事先确定的顺序控制各相的 通断.
二、由软件完成脉冲分配工作
• 用微型机代替了步进控制器把并行二进制码转换成 • 串行脉冲序列,并实现方向控制. • 只要负载是在步进电机允许的范围之内, • 每个脉冲将使电机转动一个固定的步距角度. • 根据步距角的大小及实际走的步数,只要知道初始 • 位置,便可知道步进电机的最终位置. • 特点:由软件完成脉冲分配工作,不仅使线路简化,成本下
LOOP2: MOV A,R3 ADD A,#07H MOV R3,A AJAMP LOOP1
DELAY:
;求反向控制模型的偏移量 ;延时程序
POINT
COUNT POINT
DB 01H,03H,02H,06H,04H,05H,00H ;正向控制模型 DB 01H,05H,04H.06H,02H,03H,00H ;反向控制模型 EQU 30H, EQU 0150H
01 100
3、步进电机与微型机的接口及程序设计
总之, 只要按一定的顺序
改变 P1.0~P1.2 三位通电的状况, 即可控制步进电机依选定的方向步进.
3、步进电机与微型机的接口及程序设计
由于步进电机运行时功率较大,可在微型机与驱动器 之间增加一级光电隔离器,以防强功率的干扰信号反 串为进什么主步控进系电统机.功如率图驱所动示电路. 采用光电隔离?
2、步进电机控制系统原理
步进电机的工作原理及其原理图

步进电机的工作原理及其原理图————————————————————————————————作者:————————————————————————————————日期:一、前言步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。
使得在速度、位置等控制领域用步进电机来控制变的非常的简单。
虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。
它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。
因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。
目前,生产步进电机的厂家的确不少,但具有专业技术人员,能够自行开发,研制的厂家却非常少,大部分的厂家只一、二十人,连最基本的设备都没有。
仅仅处于一种盲目的仿制阶段。
这就给用户在产品选型、使用中造成许多麻烦。
签于上述情况,我们决定以广泛的感应子式步进电机为例。
叙述其基本工作原理。
望能对广大用户在选型、使用、及整机改进时有所帮助。
二、感应子式步进电机工作原理(一)反应式步进电机原理由于反应式步进电机工作原理比较简单。
下面先叙述三相反应式步进电机原理。
1、结构:电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。
0、1/3て、2/3て,(相邻两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て,A'与齿5相对齐,(A'就是A,齿5就是齿1)下面是定转子的展开图:2、旋转:如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力以下均同)。
如B相通电,A,C相不通电时,齿2应与B对齐,此时转子向右移过1/3て,此时齿3与C 偏移为1/3て,齿4与A偏移(て-1/3て)=2/3て。
L298N电机可编程控制器设计原理图PCB图及例程

L298N直流电机步进电机可编程驱动控制器简要说明:一、尺寸:长88mmX宽67mmX高35mm二、主要芯片:L298N、光电耦合器三、工作电压:输入电压(5V~30V)输入电压的大小由被控制电机的额定电压决定。
四、可驱动直流(5~30V之间电压的直流电机或者步进电机)五、最大输出电流2A (瞬间峰值电流3A)六、最大输出功率25W七、特点:1、具有信号指示2、转速可调3、抗干扰能力强4、具有续流保护5、可单独控制两台直流电机6、可单独控制一台步进电机7、PWM脉宽平滑调速(可使用PWM信号对直流电机调速)8、可实现正反转9、采用光电隔离10、P3口全部引出11、四位LED灯指示12、四位按键输入(可以对AT89S52单片机编程实现任何控制)产品最大特点:可以对AT89S52单片机编程实现任意控制被控的直流电机或者步进电机。
适用场合:单片机学习、电子竞赛、产品开发、毕业设计。
注意啦:本产品提供例程(附带原理图以及说明!)【标注图片】【步进电机接线图】【直流电机接线图】【应用原理图】实例一:步进电机的控制实例步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。
步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。
一、步进电机最大特点是:1、它是通过输入脉冲信号来进行控制的。
2、电机的总转动角度由输入脉冲数决定。
3、电机的转速由脉冲信号频率决定。
二、步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。
(或者其他信号源) 三、控制步进电机的速度如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。
两个脉冲的间隔越短,步进电机就转得越快。
调整单片机发出的脉冲频率,就可以对步进电机进行调速。
(注意:如果脉冲频率的速度大于了电机的反应速度,那么步进电机将会出现失步现象)。
四、此板驱动步进电机测试程序说明:以AT89S52单片机控制单元,C语言编程!【测试程序】/********************************************************************汇诚科技实现功能:正转_反转_减速_加速程序使用芯片:AT89S52 或者 STC89C52晶振:11.0592MHZ编译环境:Keil作者:zhangxinchun淘宝店:汇诚科技*********************************************************************/#include<reg52.h>/*------宏定义------*/#define uchar unsigned char#define uint unsigned int/*****P1.0=A ;P1.1=B ;P1.2=A' ; P1.3=B'****//*******************************正转数组**************************************************/ code unsigned char runz[8]={0x05,0x01,0x09,0x08,0x0a,0x02,0x06,0x04}; //两相四线八拍工作方式/*******************************反转数组**************************************************/ code unsigned char runf[8]={0x04,0x06,0x02,0x0a,0x08,0x09,0x01,0x05}; //两相四线八拍工作方式uchar keycan=0; //键值int y=15;//定义转动速度,数值越大电机转速越慢反之则快sbit P2_0=P2^0;//正转按键sbit P2_1=P2^1;//反转按键sbit P2_2=P2^2;//电机减速sbit P2_3=P2^3;//电机加速/********************************************************************延时函数*********************************************************************/void delay(i)//延时函数{uchar j,k;for(j=0;j<i;j++)for(k=0;k<250;k++);}/********************************************************************正转运行函数*********************************************************************/void zrun()// 正转运行{uchar z;for(z=0;z<8;z++){P1=runz[z];delay(y);}}/********************************************************************反转运行函数*********************************************************************/void frun()// 反转运行{uchar z;for(z=0;z<8;z++){P1=runf[z];delay(y);}}/********************************************************************主函数*********************************************************************/ main(){while(1){if(P2_0==0) //如果电机正转按键按下{keycan=1; //键值等于1}if(P2_1==0) //如果电机反转按键按下{keycan=2; //键值等于2}switch (keycan){case 1: zrun(); //键值等于1 正转break;case 2: frun(); //键值等于2 反转break;}if(P2_2==0) // 电机减速{y+=2;}if(P2_3==0) // 电机加速{y-=2;}}}/********************************************************************结束*********************************************************************/实例二:直流电机的控制实例使用直流/步进两用驱动器可以驱动两台直流电机。
步进电机及其工作原理详细图文

B
4 3
A
1
A
2
4
B
3
2
1
B
C
B
C
A
30 °
θb = 30°
A
2
A
2 1 4 3
B
3
C
B
1 4
B
C
C
制作:张津
A
A
单段反应式步进电机的工作原理 ——四转子齿
定子通电顺序: BA→AC→CB→BA 转子旋转方向: 顺时针 步距角:
1
2 A A 1 2
360 ° θb = m* Z * C
式中:m -定子相数 4 3 Z - 转子齿数 A C -通电方式 C = 1 单相轮流通电、双相轮流通电方式 C = 2 单、双相轮流通电方式
制作:张津
常用步进电机的步距角 常用步进电机的定子绕组多数是三相和五相, 与此相 匹配的转子齿数分别为40齿和48齿,即有 三相步进电机:
△ △A △B △C
1
2 3 4 5 6 7 8 9
制作:张津
环行分配器的工作原理
如果用D触发器,则触发器的输入端就是D端,它的信号也 取自触发器本身,不过这中间还要加一定的外接无源电路。触 发器的输出和输入通过一定的外电路连接在一起,构成一个封 闭的整体环形电路,只要有¦¤x这个单序列脉冲它就能连续不断 地输出ΔA、ΔB、ΔC,这就是我们把它称为环行分配器的道 理。即环行就是触发器的输入由其输出连接,分配就是根据步 进电机定子绕组的通电顺序要求对Δx的序列脉冲进行再分配。 所以也常直接称其为脉冲分配器。
制作:张津
60
°
四相步进电机原理图

四相步进电机原理图本文先介绍该步进电机的工作原理,然后介绍了其驱动器的软、硬件设计。
1. 步进电机的工作原理该步进电机为一四相步进电机,采用单极性直流电源供电。
只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。
图1是该四相反应式步进电机工作原理示意图。
图1 四相步进电机步进示意图开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。
当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。
而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。
依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。
四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。
单四拍与双四拍的步距角相等,但单四拍的转动力矩小。
八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。
单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c 所示:a. 单四拍b. 双四 c八拍图2.步进电机工作时序波形图2.基于AT89C2051的步进电机驱动器系统电路原理步进电机驱动器系统电路原理如图3:图3 步进电机驱动器系统电路原理图AT89C2051将控制脉冲从P1口的P1.4~P1.7输出,经74LS14反相后进入9014,经9014放大后控制光电开关,光电隔离后,由功率管TIP122将脉冲信号进行电压和电流放大,驱动步进电机的各相绕组。
使步进电机随着不同的脉冲信号分别作正转、反转、加速、减速和停止等动作。
图中L1为步进电机的一相绕组。
AT89C2051选用频率22MHz的晶振,选用较高晶振的目的是为了在方式2下尽量减小AT89C2051对上位机脉冲信号周期的影响。