基于单片机和L297-L298芯片的步进电机控制驱动器设计
步进电机驱动电路L297与L298以及原理分析
步进电机驱动电路原理图
L297与L298
步进电机驱动电路PCB图
原理分析:
电机转动过程中需要精密测出相应转过的角度,这就要求电机的灵敏度高,受惯性的影响较小,所以直流电机不满足要求。
故我们采用了带光耦隔离,利用抗干扰能力强的TLP521作为隔离保护;利用L297进行PWM脉宽平滑调速与输出限流保护;利用L298实现电机驱动及其正反转,并采用二极管进行续流保护。
如图所示,在步进电机驱动模块中,采用了带光耦隔离,抗干扰能力强的TLP521作为隔离电流保护芯片,其中L297的17脚通过给高低电平来控制步进电机的正反转,而18脚为步进时钟输入端,控制每个步数的时间增量,19脚步进电机的半步或者整步的选择,10脚为使能控制端,来控制电机的启停,而经过内部包含4 信道逻辑驱动电路、高压、大电流双H 桥式驱动器L298来控制电机的正反转(如图10)。
其中图6上的8个二极管起着续流保护的作用。
图10 L298内部原理图。
L297_L298芯片混合式步进电机驱动器设计原理图及例程
【简要说明】一、尺寸:长71mmX宽43mmX高28mm二、主要芯片:L297、L298N三、工作电压:控制信号直流4.5~5.5V;电机电压直流5V~30V四、最大工作电流:2A五、额定功率25W六、特点:1、具有电源指示。
2、转速可调3、抗干扰能力强4、具有续流保护和过电流保护5、可单独控制一台步进电机6、可控制两相和四相步进电机7、可控制直径在42mm内的任何,两相和四相步进电机适用场合:单片机学习、电子竞赛、产品开发、毕业设计。
【标注图片】【步进电机控制接线图】步进电机的控制实例步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。
步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。
一、步进电机最大特点是:1、它是通过输入脉冲信号来进行控制的。
2、电机的总转动角度由输入脉冲数决定。
3、电机的转速由脉冲信号频率决定。
二、步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。
(或者其他信号源)三、控制步进电机的速度如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。
两个脉冲的间隔越短,步进电机就转得越快。
调整单片机发出的脉冲频率,就可以对步进电机进行调速。
(注意:如果脉冲频率的速度大于了电机的反应速度,那么步进电机将会出现失步现象)。
四、此板驱动步进电机测试程序说明:以AT89S52单片机控制单元,C语言编程!【接线图】【测试程序】/********************************************************************汇诚科技实现功能:正转_反转_减速_加速程序使用芯片:AT89S52 或者STC89C52晶振:11.0592MHZ编译环境:Keil作者:zhangxinchun淘宝店:汇诚科技【声明】此程序仅用于学习与参考,引用请注明和作者信息!*********************************************************************/ #include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar Y=1; //初始化速度/********************************************************控制位定义********************************************************/sbit shi_neng=P1^0; // 使能控制位sbit fang_shi=P1^1; // 工作方式控制位sbit fang_xiang=P1^2;// 旋转方向控制位sbit mai_chong=P1^3; // 脉冲控制位sbit zheng_zhuan=P2^0; // 正转sbit fan_zhuan=P2^1; // 反转sbit jia_su=P2^2; // 加速sbit jian_su=P2^3; // 减速/********************************************************延时函数********************************************************/ void delay(uchar i)//延时函数{uchar j,k;for(j=0;j<i;j++)for(k=0;k<180;k++);}/********************************************************加速函数********************************************************/ void jia(){Y=Y-1;if(Y<=1){Y=1;}//如果速度值小于等于1,值保持不变}/********************************************************减速函数********************************************************/ void jian(){Y=Y+1;if(Y>=100){Y=100;}}/********************************************************主函数********************************************************/main(){shi_neng=1; // 使能控制位fang_shi=1; // 工作方式控制位fang_xiang=1;// 旋转方向控制位mai_chong=1; // 脉冲控制位while(1){if(zheng_zhuan==0){fang_xiang=1;}if(fan_zhuan==0){fang_xiang=0;}if(jia_su==0){delay(10);while(!jia_su);jia();}if(jian_su==0){delay(10);while(!jian_su);jian();}mai_chong=~mai_chong; //输出时钟脉冲delay(Y); //延时(括号内数值越小,电机转动速度越快)}}/********************************************************结束********************************************************/【应用原理图】L297_L298芯片混合式步进电机驱动器元件清单序号名称标注名型号封装备注1 电阻R1、R3 1K 贴片0805封装2 电阻R2 3.9K 贴片0805封装3 电阻R4、R5 0.5欧姆直插2W4 电阻R6 22K 贴片0805封装5 电容C1 25V0.22uf 直插电容6 电阻C2 50V100UF 电解电容7 发个二极管DS1 红色二极管区分正负极8 整流二极管D1~D8 IN40079 芯片U1 L297 20P直插10 芯片U2 L29811 排针P1 6针12 端子6针【图片展示】/********************************************************实现功能:正转程序使用芯片:AT89S52晶振:11.0592MHZ编译环境:Keil********************************************************/#include<reg52.h> //库文件#define uchar unsigned char //字符型宏定义#define uint unsigned int //整型宏定义uchar tt; //定时器计数初值定义uint sec; //速度值定义uchar Y=30; //初始化速度/********************************************************控制位定义********************************************************/sbit shi_neng=P1^0; // 使能控制位sbit fang_shi=P1^1; // 工作方式控制位sbit fang_xiang=P1^2;// 旋转方向控制位sbit mai_chong=P1^3; // 脉冲控制位sbit zheng_zhuan=P2^0; // 正转sbit fan_zhuan=P2^1; // 反转sbit jia_su=P2^2; // 加速sbit jian_su=P2^3; // 减速/********************************************************************延时函数*********************************************************************/ void delay(uchar t){uchar i,j;for(i=0;i<t;i++){for(j=13;j>0;j--);{ ;}}}/********************************************************************定时中断服务函数*********************************************************************/ void t0(void) interrupt 1 using 0 //定时中断服务函数{tt++; //每过250ust tt 加一if(tt==1) //当tt满足条件时{tt=0; //计满重新再计sec++;if(sec==Y) //括号内数值越小,电机转动速度越快{sec=0; //计满重新再计mai_chong=~mai_chong; //脉冲输出}}}/********************************************************初始化********************************************************/ void init(){TMOD=0x02; //定时器工作在方式2ET0=1;EA=1;TH0=0xFF; //对TH0 TL0 赋值TL0=0xFE;TR0=1; //开始定时sec=0;mai_chong=1; // 脉冲控制位}/********************************************************加速函数********************************************************/ void jia(){Y=Y-2;if(Y<=1){Y=2;}//如果速度值小于等于1,值保持不变}/********************************************************减速函数********************************************************/ void jian(){Y=Y+2;if(Y>=100){Y=100;}}/********************************************************主函数********************************************************/main(){init(); //程序初始化shi_neng=0; // 使能控制位fang_shi=1; // 工作方式控制fang_xiang=1;// 控制方向为正转while(1){if(zheng_zhuan==0){delay(100);shi_neng=1;fang_xiang=0;}if(fan_zhuan==0){delay(100);shi_neng=1;fang_xiang=1;}if(jia_su==0){delay(10);while(!jia_su);jia();}if(jian_su==0){delay(10);while(!jian_su);jian();}}}/********************************************************结束********************************************************/keil参考程序正转_反转_加速_减速_高速#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar Y=1; //初始化速度/********************************************************控制位定义********************************************************/sbit shi_neng=P1^0; // 使能控制位sbit fang_shi=P1^1; // 工作方式控制位sbit fang_xiang=P1^2;// 旋转方向控制位sbit mai_chong=P1^3; // 脉冲控制位sbit zheng_zhuan=P2^0; // 正转sbit fan_zhuan=P2^1; // 反转sbit jia_su=P2^2; // 加速sbit jian_su=P2^3; // 减速/********************************************************延时函数********************************************************/void delay(uchar i)//延时函数{uchar j,k;for(j=0;j<i;j++)for(k=0;k<180;k++);}/********************************************************加速函数********************************************************/ void jia(){Y=Y-1;if(Y<=1){Y=1;}//如果速度值小于等于1,值保持不变}/********************************************************减速函数********************************************************/ void jian(){Y=Y+1;if(Y>=100){Y=100;}}/********************************************************主函数********************************************************/main(){shi_neng=1; // 使能控制位fang_shi=1; // 工作方式控制位fang_xiang=1;// 旋转方向控制位mai_chong=1; // 脉冲控制位while(1){if(zheng_zhuan==0){fang_xiang=1;}if(fan_zhuan==0){fang_xiang=0;}if(jia_su==0){delay(10);while(!jia_su);jia();}if(jian_su==0){delay(10);while(!jian_su);jian();}mai_chong=~mai_chong; //输出时钟脉冲delay(Y); //延时(括号内数值越小,电机转动速度越快)}}AVR系列单片机控制参考程序#include <iom16v.h>#include <macros.h>/**********************************************************************函数数据类型说明**********************************************************************/ #define uchar unsigned char#define uint unsigned int/**********************************************************************延时函数**********************************************************************/ void delay(uint MS){uint i,j;for( i=0;i<MS;i++)for(j=0;j<80;j++); //1141是在8MHz晶振下,通过软件仿真反复实验得到的数值}/**********************************************************************主函数**********************************************************************/ void main(){ uint i;i=10;//改变变量i 的大小可以改变速度,i越大速度越慢DDRB=0XFF;//PORTC=0XFF;PORTB|=BIT(0);//00000001 使能控制开PORTB|=BIT(1);//00000010 四拍工作方式PORTB|=BIT(2);//00000100 正方向旋转while(1){PORTB|=BIT(3);//00001000 脉冲输出delay(i);PORTB&=~BIT(3);delay(i);}}/**********************************************************************结束**********************************************************************/。
L297和L298N驱动电路及步进电机的基本原理与功能
网易新闻微博邮箱闪电邮相册有道手机邮印像派梦幻人生更多博客博客首页博客话题热点专题博客油菜地找朋友博客圈子博客风格手机博客短信写博邮件写博博客复制摄影摄影展区每日专题窗体顶端年12月17日STC89C51单片机,L297和L298N驱动电路及步进电机的基本原理与功能默认分类2008-12-11 14:43:53 阅读8201 评论6 字号:大中小订阅摘要:本设计首先介绍了STC89C51单片机,L297和L298N驱动电路及步进电机的基本原理与功能;其次,设计步进电机实现起停、转向、速度、位置变化的控制方案;再次,在这些器件功能与特点的基础上,拟出设计思路,构建系统的总体框架;最后利用PROTEL软件绘出电路图,同时写出设计系统的运行流程和相关程序。
整个系统通过写入单片机中的程序分配好控制字的存储单元以及相应的内存地址赋值;启动系统后,从单片机的I/O口输出控制脉冲,经过L297、L298N驱动电路对脉冲进行处理,输出能直接控制步进电机的脉冲信号。
在此基础上,重新分配I/O资源,同时增加驱动芯片L297、L298N的个数,在负载能力范围允许内,就能实现多台步进电机独立起停、转向、速度、位置变化的控制。
关键字:STC89C51单片机;L297; L298N; 步进电机前言步进电机是一种将电脉冲信号转换成相应角位移的控制电机。
目前,数字技术、计算机技术和永磁材料的迅速发展,推动了步进电机的发展。
本设计针对目前各个领域对自动化的需要,采用STC89C51单片机与L297,L298N驱动芯片驱动多台步进电机同时独立工作,将它应用于各种复杂的控制领域,能使许多半自动控制的系统完全成为真正的全自动,特别是用在机器人等领域,能极大的提高生产力和降低劳动强度。
由于步进电机具有快速启动、精确步进和定位等特点,因而在数控机床,绘图仪,打印机以及光学仪器中得到广泛的应用。
STC89C51单片机的特点STC89C51系列单片机是宏晶科技推出的新一代超强抗干扰/高速/低功耗的单片机,是MCS-51系列单片机的派生产品;它们在指令系统中、硬件系统和片内资源与标准的8052单片机完全兼容,DIP-40封装系列与8051为pin-to-pin兼容,指令代码是与8051完全兼容的单片机。
步进电动机是一种将电脉冲信号转换成角位移或线位移的...
1 引言步进电动机是一种将电脉冲信号转换成角位移或线位移的精密执行元件,由于步进电机具有控制方便、体积小等特点,所以在数控系统、自动生产线、自动化仪表、绘图机和计算机外围设备中得到广泛应用。
微电子学的迅速发展和微型计算机的普及与应用,为步进电动机的应用开辟了广阔前景,使得以往用硬件电路构成的庞大复杂的控制器得以用软件实现,既降低了硬件成本又提高了控制的灵活性,可靠性及多功能性。
市场上有很多现成的步进电机控制机构,但价格都偏高。
应用SGS公司推出的L297和L298两芯片可方便的组成步进电机驱动器,并结合AT89C52单片机进行控制,即可以实现用相对便宜的价格组成一个性能不错的步进电机驱动电路。
2 工作原理由于步进电机是一种将电脉冲信号转换成直线或角位移的执行元件,它不能直接接到交直流电源上,而必须使用专用设备-步进电机控制驱动器典型步进电机控制系统如图1所示:控制器可以发出脉冲频率从几赫兹到几十千赫兹可以连续变化的脉冲信号,它为环形分配器提供脉冲序列。
环形分配器的主要功能是把来自控制环节的脉冲序列按一定的规律分配后,经过功率放大器的放大加到步进电机驱动电源的各项输人端,以驱动步进电机的转动。
环形分配器主要有两大类:一类是用计算机软件设计的方法实现环分器要求的功能,通常称软环形分配器。
另一类是用硬件构成的环形分配器,通常称为硬环形分配器。
功率放大器主要对环形分配器的较小输出信号进行放大.以达到驱动步进电机目的。
图1 典型步进电机控制框图3 硬件组成文中所控制的步进电机是四相单极式35BY48HJ120减速步进电动机。
本文所设计的步进电机控制驱动器的框图如图2所示。
它由AT89C52单片机、光电耦和器、集成芯片L297和L298组成。
AT89C52是美国ATMEL的低电压、高性能8位CMOS单片机。
片内置8K 字节可重复擦写的Flash闪速存储器。
256字节RAM。
3个16位定时器.可编程串行UART通道。
基于L297+L298步进电机驱动与控制
基于L297+L298步进电机驱动与控制采用L297+L298构成的步进电机驱动如图5.5.3所示。
PCB图如图5.5.14所示。
L298N可以驱动直流电机和两个二相电机,也可以驱动一个四相电机,可直接通过电源来调节输出电压。
最大输入电流DC 2A,最高输入电压为DC 50V。
最大输出功率25W。
L297译码器能将控制器的控制信号译成所需的相序,再将产生的四相A、B、C、D或抑制线INH1和INH2输入到L298N进行功率放大。
(1)隔离电路设计一般步进电机转速不超过1000r/s,查询资料可得TLP521响应10μs。
计算公式如下:f =v=则选用TL521系列即可达到设计要求,如需提高电机转速,则只需将CLK端的光耦更换为高速光耦。
图中R7~R11为限流电阻,阻值为1K。
光耦的引脚端2、4、6、8、10分别接微控制器的4个I/O 12。
光耦的引脚端20、18、16、14、12与L297连接;当控制I/O口输出低电平时,光耦内部发光二极管导通发光,使光敏三极管导通从而使光耦的引脚端19、17、15、13、11输出低电平,这样就通过光耦将控制器与驱动电路相隔离,起到了保护微控制器的作用。
(2)驱动电路设计步进电机驱动电路采用L297+L298N构成。
L297的基准电压端V REF输入电压的大小控制步进电机输入电流,为保证步进电机最大的额定电流1.5A,如果选择V REF为1V,则要求R12~R15选用10/2W 的电阻。
L297的引脚端功能如下:引脚端10(使能端EN)为芯片的片选信号,高电平有效;引脚端20(复位RST),低电平有效;引脚端19(HALF/FULL)和引脚端17(CW/CCW)都通过上拉电阻链接到高电平;引脚端18(时钟输入CLK)的最大输入时钟频率不能超过5KHz,控制时钟的频率,即可控制电机转动速率;引脚端19(HALF/FULL)决定电机的转动方式,HALF/FULL=0,电机按整步方式运转;HALF/FULL=1,电机按半步方式运转;引脚端17(CW/CCW)控制电机转动方向;CW/CCW=1,电机顺时针旋转;CW/CCW=0,电机逆时针旋转。
基于单片机的步进电机驱动控制系统设计答辩稿
总结
毕业设计是难得的理论与实践相结合的机会。通过这次单 片机与步进电机相结合的设计,各元器件的选用以及 Proteus软件的使用,使我对专业知识与实践应用不断提 高,同时,对硬件的设计问题深入了解。整个研究主要以 单片机为基础,用单片机来控制步进电机的转动。通过这 次研究,我熟悉了单片机的一般性搭建电路,了解一般电 子电路与单片机构成简单系统及编程的方法。通过对各种 设计电路的软件的使用,提高了自己的实际动手能力和独 立思考的能力,进一步加深对单片机常用指令的理解与运 用。能够较熟练的运用Proteus绘制电路原理图以及进行 仿真。以及Proteus的调试,积累不少实际电子制作经验 ,达到了学以致用的目的,真正的把理论和实践结合起来 ,让我们进一步体会到实践的重要性,对我们以后的工作 有很大的促进作用。
系统软件结构设计
本次毕业设计采用的单片机是AT89C51。程序主要包括 :数码显示程序设计、定时件结构设计
显示程序主要显示步进电机的转速及转向.
系统软件结构设计
定时器所给定的时间长短,实质是决定步进电机在特定转 向下的转速,当定时时间较长时步进电机的转速较快,当 定时时间较短时,步进电机的转速较快。
基于单片机的步进电机驱动控制系统设计
班级: 学生: 学号: 指导老师:
LOGO
系统的背景及意义
指针式电子钟表
一直以来,国内外对步进电机的研究一直很活跃。这是因为 工业机械手 步进电机的控制应用已经深深渗透到国民生活、生产的各个领域 。步进电机是一种常用的机电元件,它的定角转动控制主要是通 过电脉冲信号来对相绕组电流进行控制才得以实现的,与其他类 型的电机进行相比,步进电机具有许多优点,比如较易于实现开 环精确控制,并且无积累误差等是它最具竞争力的,因此在各种 各样的领域中都有步进电机广泛的应用。为了达到现在人们对智 能化和网络化的需求,步进电机的控制技术也在不断更新发展, 印刷机 功能强大的单片机也越来越多地应用到步进电机控制系统,实现 数控切割机 了强强联合,势不可挡! 本课题研究步进电机和单片机的原理,并设计实现利 用单片机对步进电机进行驱动控制。并利用Proteus 仿真平台仿真实现以单片机作为控制核心对步进电机 进行驱动控制使其实现“正转”、“反转”、“加速”、 “减速”以及“停止”运动的电路设计和软件设计及仿真。
L297_L298步进电机控制电路图
秦驰L297的工作原理介绍L297是意大利SGS半导体公司生产的步进电机专用控制器,它能产生4相控制信号,可用于计算机控制的两相双极和四相单相步进电机,能够用单四拍、双四拍、四相八拍方式控制步进电机。
芯片内的PWM斩波器电路可开关模式下调节步进电机绕组中的电机绕组中的电流。
该集成电路采用了SGS公司的模拟/数字兼容的I2L技术,使用5V的电源电压,全部信号的连接都与TFL/CMOS或集电极开路的晶体管兼容。
L297的芯片引脚特别紧凑,采用双列直插20脚塑封封装,其引脚见图1,内部方框见图2。
b5E2RGbCAP在图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有抑制作用,从而可对电动机和转矩进行控制。
p1EanqFDPw图1 L297引脚图图2 L297内部方框电路图图 3 L297变换器换出的八步雷格码<顺时针旋转)图4 斩波器线路图5 多个L297同步工作连接图L297 ABSOLUTE MAXIMUM RATINGS绝对最大额定值:L297 ELECTRICAL CHARACTERISTICS (Refer to the block diagram Tamb = 25℃, Vs = 5V unless otherwiseDXDiTa9E3dspecified> L297 电气特性:L297各引脚功能说明1脚(SYNG>——斩波器输出端。
毕业设计论文基于单片机的步进电机控制器的设计
毕业设计论文基于单片机的步进电机控制器的设计摘要:本论文针对步进电机控制系统的需求,提出了一种基于单片机的步进电机控制器的设计方案。
该方案在硬件设计上选用了适用于步进电机驱动的控制芯片,并通过电路连接实现电机控制信号的输出。
在软件设计上,通过单片机编程实现步进电机的运动控制,包括步进角度、转速以及方向等参数的调节和控制。
通过测试实验证明,该设计方案能够有效地实现步进电机的精确控制,具有较好的稳定性和可靠性。
关键词:单片机;步进电机;控制器;硬件设计;软件设计;运动控制第一章引言1.1研究背景目前,步进电机作为一种常用的电机类型,在自动控制领域和精密仪器中得到了广泛应用。
步进电机具有结构简单、运行平稳、精度高等优点,因此在许多行业中被广泛采用。
为了实现步进电机的精确控制,需要一种高效、稳定的步进电机控制器。
1.2研究目的本论文的主要目的是设计一种基于单片机的步进电机控制器,通过硬件和软件的完美结合,实现对步进电机的精确控制。
同时,通过测试和分析,验证该控制器的有效性和可靠性。
第二章方案设计2.1硬件设计在硬件设计方面,本文选用了适用于步进电机驱动的控制芯片,并通过电路连接实现电机控制信号的输出。
通过调节电源、电阻和电容等元件,实现对步进电机驱动电压和电流的调节,以满足步进电机运行的需求。
2.2软件设计在软件设计方面,本文采用单片机进行编程,实现对步进电机的运动控制。
通过编写程序,实现对步进角度、转速以及方向等参数的调节和控制。
通过采集和处理步进电机的反馈信号,实现闭环控制,提高步进电机的运动精度和稳定性。
第三章实验与结果通过搭建实验系统,并进行测试和分析,验证了本文设计的基于单片机的步进电机控制器的有效性和可靠性。
实验结果表明,该控制器能够实现步进电机的精确控制,具有较好的稳定性和可靠性。
第四章论文总结本论文设计了一种基于单片机的步进电机控制器,并通过实验验证了该控制器的有效性和可靠性。
该控制器在硬件设计上选用适用于步进电机的控制芯片,并通过电路连接实现电机控制信号的输出。
基于单片机的步进电机控制电路设计
基于单片机的步进电机控制电路设计
步进电机是一种应用广泛的电机,它的控制方式是通过逐步改变电流来驱动电机转动。
基于单片机的步进电机控制电路设计可以使步进电机的控制更加精确、方便和自动化。
下面将介绍一下如何设计一台基于单片机的步进电机控制电路。
首先,我们需要选择合适的单片机。
对于步进电机控制,需要一个I/O口数目足够的单片机,并且要求计算速度快、性能稳定。
常用的单片机有AT89C51、AVR、PIC、STM32等,其
中STM32拥有强大的计算能力和外设支持,非常适合用于步
进电机控制电路的设计。
接下来,我们需要考虑步进电机的驱动方式。
步进电机可以采用全步进或半步进两种方式驱动。
全步进控制方式会让电机一步步转动,步距为180度,转速慢但精确度高,而半步进控制方式可以让电机先半步,再进入全步进控制,提高了转速同时又保持了较高的精度。
最后,我们需要设计电路连接和代码编写。
在电路连接方面,需要将单片机输出引脚和驱动芯片的控制引脚相连,同时将驱动芯片输出端和电机的相应引脚相连。
在代码编写方面,需要根据所选单片机的指令集来编写步进电机控制引脚输出的程序,实现步进电机转速和方向的控制。
综上所述,基于单片机的步进电机控制电路设计需要选取合适的单片机,选择合适的步进电机驱动方式,并根据电路连接和
代码编写来实现电机的精确控制。
这样设计出的步进电机控制电路可以应用于各种机械设备控制,使之更加智能化和自动化。
L298N(L297+L298N)电机驱动器使用说明
用 PWM 信号对
1、具有信号指示 2、转速可调 3、抗干扰能力强 4、具有续流保护 5、可单独控制两台直流电机 6、可单独控制一台步进电机 7、PWM 脉宽平滑调速(可使 直流电机调速) 8、可实现正反转 9、采用光电隔离
控制步进电机:
实例一:步进电机的控制实例
步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一 个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。 步进电机可分为反应式步进电机(简称 VR)、永磁式步进电机(简 称 PM)和混合式步进电机(简称 HB)。 一、步进电机最大特点是: 1、它是通过输入脉冲信号来进行控制的。 2、电机的总转动角度由输入脉冲数决定。 3、电机的转速由脉冲信号频率决定。 二、步进电机的驱动电路 根据控制信号工作,控制信号(ENA ENB)由单片机产生。(或者其他 信号源) 三、控制步进电机的速度 如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会 再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机
将短接帽短接)实现电机正反转就更容易了,输入信号端 IN1 接高电
平输入端 IN2 接低电平,电机 M1 正转。(如果信号端 IN1 接低电平,
IN2 接高电平,电机 M1 反转。)控制另一台电机是同样的方式,输入
信号端 IN3 接高电平,输入端 IN4 接低电平,电机 M2 正转。(反之
则反转),PWM 信号端 A 控制 M1 调速,PWM 信号端 B 控制 M2 调
QQ:1035573910.
采用 15 脚封装。主要特点是:工作电压高,最高工作电压可达 46V;
输出电流大,瞬间峰值电流可达 3A,持续工作电流为 2A;最大功率 25W。内含两个 H 桥的高电压大电流全桥式驱动器,可以用来驱动直 流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平 信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许 或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电 压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用 L298N 芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机, 也可以驱动两台直流电机,是智能小车必备。
基于单片机的步进电机控制系统设计
基于单片机的步进电机控制系统设计引言:步进电机是一种常用的电机类型,具有精准的位置控制、高效的能量转换等特点。
在许多自动化设备中广泛应用,如数控机床、3D打印机、机器人等。
本文将以基于单片机的步进电机控制系统设计为主题,介绍系统的硬件设计、软件设计以及实验验证。
一、硬件设计1.步进电机选型:根据实际应用需求,选择适当的步进电机。
包括步距角、转速范围、扭矩要求等等。
2.电源设计:步进电机需要驱动电压和电流,根据步进电机的额定电压和电流选用适当的电源。
3.驱动电路设计:步进电机通常需要驱动电路来控制电流和脉冲序列。
常见的驱动电路有全桥驱动器、半桥驱动器等。
4.信号发生器设计:步进电机通过脉冲信号来控制转动角度和速度,因此需要信号发生器来产生合适的脉冲序列。
常见的信号发生器有定时器、计数器等。
5.单片机接口设计:单片机作为步进电机控制系统的核心,需要与其他硬件进行通信。
因此需要设计合适的接口电路,将单片机的输出信号转换为驱动电路和信号发生器所需的电压和电流。
二、软件设计1.单片机程序框架设计:根据具体的单片机型号和开发环境,设计合适的程序框架。
包括初始化设置、主循环、中断处理等。
2.脉冲生成程序设计:根据步进电机的控制方式(如全步进、半步进、微步进等),设计脉冲生成程序。
通过适当的延时和输出信号控制,产生合适的脉冲序列。
3.运动控制程序设计:设计运动控制程序,实现步进电机的前进、后退、加速、减速等功能。
根据具体需求,可以设计不同的运动控制算法,如速度环控制、位置环控制等。
4.保护机制设计:为了保护步进电机和控制系统,设计合适的保护机制。
如过流保护、过压保护、过载保护等。
三、实验验证1.硬件连接:将步进电机、驱动电路和单片机按照设计进行连接。
2.软件调试:通过单片机编程,调试程序代码。
确保脉冲生成、运动控制等功能正常工作。
3.功能测试:对步进电机控制系统进行功能测试,包括正转、反转、加速、减速等功能。
通过观察步进电机的运动状态和测量相关参数来验证系统设计的正确性和性能。
L297+L298步进电机控制
摘要摘要本文介绍了计算机通过单片机控制步进电机的系统。
在电气时代的今天,电动机一直在现代化的生产和生活中起着十分重要的作用。
步进电机是机电控制中一种常用的执行机构,其原理是通过对它每相线圈中的电流和顺序切换来使电机作步进式旋转。
步进电动机的突出优点是它可以在宽广的频率范围内,可以利用改变脉冲频率来实现调速,快速起停、正反转控制及制动等,并且由其组成的开环系统简单、廉价、可靠,因此在众多领域有着极其广泛的应用。
本设计重点研究了高性能步进电机驱动器及其控制系统。
该系统以微机作为上位机,AT89C 51单片机作为下位机。
下位机设定电机速度和方向,上位机对下位机的数据信号进行控制和备份。
通过单片机与微机的串口通讯,实现对步进电机的远距离实时监控。
使用软件代替环形分配器,完成了高效、节能的步进电机控制系统设计。
软件使用易于维护的模块化设计方法,并采取软、硬件抗干扰技术,提高了系统稳定性。
大量实验表明系统性能达到设计要求,最后对本次设计做出分析和总结。
经系统调试,能够很好的控制步进电机的正反转、加减速,从而达到预期目的。
整个系统具有结构简单、可靠性高、成本低和实用性强等特点,具有较高的通用性和应用推广价值。
关键词:计算机串行口MSComm 51单片机步进电机IAbstractAbstractThis paper, we introduces a stepper motor system which controlled by SCM. In the Electrical era today, Motor has been playing a very important role in the modernization of production and life. Stepper motor is a common used implementing agency in motor control. The principle is by switching the coil current and the order in its each phase to make a step-by-step rotary motor.The outstanding advantages of step motor are that it can realize speed regulation, quick startup and stop, positive-reverse control, brake and so on by changing the frequency of pulse. In addition, the open-loop system that consisted of the step motor is simple, cheap and reliability. Therefore its application is very extensive in many fields.Though system testing, it can be very convenient to control the stepper motor, such as acceleration , deceleration,exigency stop so as to achieve the desired objectives. The whole system is simple in structure with characteristics of high reliability, low cost and practicality which has a higher universal characteristic and the promotional and applied value.Keywords: computer MSComm Single-chip microprocessor Stepper motoII目录目录摘要 ····································································································错误!未定义书签。
基于单片机的步进电机控制系统设计
基于AT89C52单片机的步进电机控制系统设计摘要:步进电机专用开发系统,适用于数控机床及某些特定条件及系统。
本文通过单片机为开发平台,对步进电机进行控制.采用单片机A T89C52,根据输入的数据转化成的控制信号来控制步进电动机的角位移的一种方法,包括硬件设计和软件设计.整个系统主要由电机驱动电路,声光报警电路,4位LED显示电路,电源电路及核心单片机部分构成。
利用单片机产生步进电机驱动脉冲,通过4×4矩阵键盘能实现对步进电机启动、停止功能的选择以及加速、减速、反转功能的选择,使用方便、操作简单。
其中在步进电机控制器的设计中,重点阐述脉冲产生电路以及对速度的控制,实现对步进电机速度精确控制的开发系统.提高步进电机的步进精度,能够控制三相或四相步进电机。
且电路简单,成本较低,控制方便,移植性强.实用价值高。
关键词:A T89C52;步进电机;脉冲产生Design of Control System for Stepping Motor Based onAT89C52Abstract:A stepper motor dedicated development system,applicable to CNC machine tools and some special conditions and system. In this paper,through the SCM as the development platform,for the stepper motor control。
The paper introduce one way that controls the stepping motor by microcomputer AT89C52 depending on the control signal to which input data convert control the line displacement of the stepping motor,namely simply graph plotter,including its hardware and software。
基于ST公司的两相步进电机驱动芯片L297和L298的步进电机驱动方案
基于ST公司的两相步进电机驱动芯片L297和L298的步进电机驱动方案,在工业应用中已经非常成熟了。
通过Google和百度等搜索引擎,都能搜索到很多资料。
这些资料中图文并茂,可以直接拿来使用。
这几日,忽心血来潮,自己非想倒腾一下,并将它作为自己的技术积累。
所以就动手用proteus做了一个仿真电路,用Keil C编译了个测试程序,并实际测试,让电机转了起来。
电路图如下:图中U1为L298是为功率放大模块;U2为L297为逻辑控制模块;U3为AT89C2051为控制芯片;其他阻容元件不在赘述。
此电路非常简单易用。
测试程序如下:// P1_0为方向输出端,P1_1为脉冲输出端//本测试程序运行在8051系列单片机环境下#include<reg51.h>#define unit unsigned intsbit CW=P1^0;sbit CLK=P1^1;unit time;int m;delay(){for(m=0;m<10000;m++){;}for(m=0;m<10000;m++){;}for(m=0;m<10000;m++){;}for(m=0;m<10000;m++){;}for(m=0;m<10000;m++){;}}void timer0(void) interrupt 1 using 1{ if (time<=16000) /*脉冲数*/{TR0=0;CLK=!CLK;for(m=0;m<30;m++){;}CLK=!CLK;time++;}else {TR0=0;time=1;CW=!CW; /*改变方向*/delay();}TH0=(65536-1000)/256;TL0=(65536-1000)%256;TR0=1;}void main(void){time=1;TMOD=0x01;CW=0;CLK=0;delay();TH0=(65536-1000)/256;TL0=(65536-1000)%256;EA=1;ET0=1;TR0=1;do {}while (1);}L297、L298驱动两相步进电机的proteus仿真电路和测试程序打包下载连接如下:/attachment.php?aid=24701&k=d81a4622445286225d686 eef6b44b9c3&t=1274774861&fid=32&sid=eccfyKM%2FzugbI%2F92d5kec2ytt FivGQBf8VQ9owHJYR2UXVA也可以见21ic上的帖子,地址如下:/icview-174094-1-1.html。
单片机控制l298n让电机旋转的程序
单片机控制l298n让电机旋转的程序【深度探讨:单片机控制L298N让电机旋转的程序】一、前言在现代科技高度发达的今天,单片机作为一种微型电脑,广泛应用于各种领域。
而L298N作为电机驱动芯片,也在电机控制领域扮演着重要角色。
本文将深入探讨单片机控制L298N让电机旋转的程序,希望能够帮助读者更好地理解并应用这一领域的知识。
二、程序设计思路在进行单片机控制L298N让电机旋转的程序设计时,首先需要明确控制的电机种类和控制信号的参数。
通过单片机的I/O口与L298N进行连接,并将控制信号送入L298N芯片,以实现对电机的控制。
在具体的程序设计中,可以采用PWM调速的方式来控制电机的转速,同时可以根据需要改变方向,以控制电机的正反转。
三、程序设计实例下面给出一个单片机控制L298N让电机旋转的简单实例,以便更好地理解程序的设计:```c//定义引脚#define ENA 3#define IN1 4#define IN2 5//初始化void setup() {pinMode(ENA, OUTPUT);pinMode(IN1, OUTPUT);pinMode(IN2, OUTPUT);}//控制电机正转void loop() {digitalWrite(IN1, HIGH);digitalWrite(IN2, LOW);analogWrite(ENA, 200);}```在上面的程序中,首先定义了ENA、IN1和IN2三个引脚,分别用于接收PWM调速信号和控制电机正反转的信号。
然后在setup函数中对引脚进行了初始化,以确保电机正常工作。
在loop函数中,通过digitalWrite函数将电机控制引脚设置为正转状态,并通过analogWrite函数向ENA引脚发送PWM调速信号,从而控制电机的转速。
同样的方法也可以实现电机的反转和调速功能。
四、个人观点和总结通过对单片机控制L298N让电机旋转的程序进行深入探讨,我们可以更好地理解程序设计的思路和实现方法。
基于单片机控制的步进电机串行开环控制系统设计与实施探讨
基于单片机控制的步进电机串行开环控制系统设计与实施探讨摘要:抗扰性能高于电脑的根据工业测控环境条件设计制成的芯片(单片机)在步进电机控制系统中广泛应用。
控制电路不受负载位置反馈的开环控制简单易实现,价格较低。
本文对控制系统采用单片机制成的开环控制步进电机结合案例进行讨论分析。
关键词:单片机;步进电机;串行;开环控制;1引言微控制器(MCU,单片机)以小体积、多功能、高性价等优势在工业生产中占有重要的一席之地。
MCU上集成CPU、RAM、ROM、定时计数器、I/O电路、串行接口等部件于一体芯片,换而言之即为独一芯片上的电脑,其作为一个部件完美融入在工业应用中,被称为称为Embedded Microcon troller(嵌入式控制器)。
作为一类角位移由电脉冲形成的动力机构系统,步进电机通过脉冲信号驱动,每次按照生产设计预定的方向转动一个或倍数个步进角(设计时设定的一个固定角度)。
步进角个数决定角位移,而步进角个数由受控脉冲数控制。
电机调速时,同样以脉冲频率控制电机转动加速度,从而达到影响电机转速的目的。
现今各类步进电机均具备快速启停功能,其构成的自动动力系统一般无需反馈调节即可控制动力输出速度及位置,同时通常不积累位置上的系统误差。
而且,这种电机系统具备通用匹配的特点,能直接兼容数组设备以收受外部数字信号控制。
尽管比起开环控制来说,闭环控制相对而言较为可靠,然而闭环控制步进电机构成动力系统成本高于开环系统,且有不小的概率诱发动机系统的持续机械振荡。
同时,若有对系统动态性能上的考虑,则交、直流电机伺服系统是更好的选择。
综合性价比、需求目标等因素考虑开环控制系统属于步进电动机控制系统的多数选择。
2对单片机开环控制步进电机统各部分的分析2.1 电机开环控制系统步进电动机的控制方式中开环控制最简单的即是玎环控制系统。
图1所示即为一种步进电机开环控制系统示意图。
玎环控制下,脉冲电流作为电机控制的介质,其不受电机转子位置的影响。
基于51单片机驱动L289直流电机步进电机控制Protues仿真设计
51单片机L298N直流电机步进电机驱动
采用专用芯片L298N作为电机驱动芯片。
L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。
用该芯片作为电机驱动,操作方便,稳定性好,性能优良。
且由L298N结合单片机可实现对小车速度的精确控制。
这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。
因此决定采用L298N控制直流电机。
电机驱动芯片采用L298N,是一款承受高压大电流的全桥型直流/步进电压驱动器,如下图
电机控制芯片L298N的引脚排列
L298N内部原理图
电机驱动A/B的控制逻辑如下表所示
电机驱动A/B的工作原理
电机控制逻辑如下:以电机A为例,当使能端A为高电平是,如果输入端M1 Direction 引脚为高电平,三极管导通,输入引脚1为低电平而输入引脚2为高电平,电机A反转;如果输入端M1 Direction引脚为底电平,三极管截止,输入引脚1为高电平而输入引脚2为低电平,电机A正转。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AT89C52通过串口经MAX232电平转换之后与微机相连。接受上位机指令。向L297发出时钟信号、正反转信号、复位信号及使能控制等信号。电路中,电阻R13,R15用来调节斩波器电路的参考电压,该电压将与通过管脚13,14所反馈的电位的大小比较,来确定是否进行斩波控制,以达到控制电机绕组电流峰值。
基于单片机和L297/L298芯片的步进电机控制驱动器设计
1 引言
步进电动机是将电脉冲激励信号转换成相应的角位移或线位移的离散值控制电动机,这种电动机每当输入一个电脉冲就动一步,所以又称脉冲电动机。步进电动机把电脉冲信号变换成角位移以控制转子转动的微特电机。在自动控制装置中作为执行元件。每输入一个脉冲信号,步进电动机前进一步,故又称脉冲电动机。步进电动机多用于数字式计算机的外部设备,以及打印机、绘图机和磁盘等装置。 在数字控制系统中具有精度高,运行可靠。如采用位置检测和速度反馈,亦可实现闭环控制。步进电动机已广泛地应用于数字控制系统中,如数模转换装置、数控机床、计算机外围设备、自动记录仪、钟表等之中,另外在工业自动化生产线、印刷设备等中亦有应用。
图1 典型步进电机控制框图
3 硬件组成
文中所控制的步进电机是四相单极式35BY48HJ120减速步进电动机。本文所设计的步进电机控制驱动器的框图。片内置8K字节可重复擦写的Flash闪速存储器。256字节RAM。3个16位定时器。可编程串行UART通道。
图2 本文提出的步进电机控制驱动器框图
2 工作原理
由于步进电机是一种将电脉冲信号转换成直线或角位移的执行元件,它不能直接接到交直流电源上,而必须使用专用设备-步进电机控制驱动器典型步进电机控制系统:控制器可以发出脉冲频率从几赫兹到几十千赫兹可以连续变化的脉冲信号,它为环形分配器提供脉冲序列。环形分配器的主要功能是把来自控制环节的脉冲序列按一定的规律分配后,经过功率放大器的放大加到步进电机驱动电源的各项输人端,以驱动步进电机的转动。环形分配器主要有两大类:一类是用计算机软件设计的方法实现环分器要求的功能,通常称软环形分配器。另一类是用硬件构成的环形分配器,通常称为硬环形分配器。
4 软件组成
在该电路中,将P1.0口设为电机开始按钮,P1.1,P1.2,P1.3为速度选择按钮。速度由低到高,P1.4为电机停止按钮。并设三档速度的最高速度依次为500pps、1000pps、2000pps 。RXD,TXD 已由MAX232电平转换接出串口。此外,步进电机其启动,停止的频率较低,一般在100-250Hz之间,而最高运行频率要求较高。通常为1-3kHz,为使其在启动、运行和停止整个过程中,这采用常用的离散办法来逼近理想的近似梯形的升降速曲线,。
L297芯片是一种硬件环分集成芯片。芯片内的PWM斩波器电路可开关模式下调节步进电机绕组中的电机绕组中的电流。该集成电路采用了SGS公司的模拟/数字兼容的I2L技术,使用ห้องสมุดไป่ตู้V的电源电压,全部信号的连接都与TFL/CMOS或集电极开路的晶体管兼容。它可产生四相驱动信号,用于计算机控制的两相双极或四相单极步进电机,这一部分是由两种输入模式控制,方向控制(CW/CCW) 和HALF/FULL 以及步进式时钟CLOCK.它将译码器从一阶梯推进至另一阶梯。译码器有四个输出点连接到输出逻辑部分,因此L297能产生三种相序信号,对应于三种不同的工作方式:即半步方式(HALF STEP);基本步距(FULL STEP,整步)一相激励方式;基本步距两相激励方式。脉冲分配器内部是一个3bit可逆计数器,加上一些组合逻辑。产生每周期8步格雷码时序信号,这也就是半步工作方式的时序信号。
L297是意大利SGS半导体公司生产的步进电机专用控制器,它能产生4相控制信号,可用于计算机控制的两相双极和四相单相步进电机,能够用单四拍、双四拍、四相八拍方式控制步进电机。它们所组成的微处理器至双桥式步进电动机的接口。这种方式结合的优点是,需要的元件很少,可靠性高和占空间少,并且通过软件开发,可以简化和减轻微型计算机的负担。
5 结论
本文创新点在于提出应用单片机和L297、L298集成电路构成步进电机控制驱动器。使之具有元件少。可靠性高、占空间少、装配成本低等优点。另外,在上面提出的在加减速程序中定时器的装载值用式子计算不精确,这两条赋值要执行不少的时间。具体做的时候。可直接把初值计算出来或把除号用相加来计算。
把各离散点的速度所需的装载值用公式转化为各自所需的定时时间固化在系统的ROM 中,这里用TH0=(65536-time)/256,TL0=(65536-time)%256来计算装载值,time表示各阶梯所需定时时间。该程序主要由控制主程序、加减速子程序组成,主程序框图。
L297另一个重要组成是由两个PWM 斩波器来控制相绕组电流,实现恒流斩波控制以获得良好的矩频特性。图3中,频率f是由外接16脚的RC网络决定的, 当R=10kΩ 时,f=1/0.69RC。当时钟振荡器脉冲使触发器置1,电机绕组相电流上升,采样电阻的R 上电压上升到基准电压Uref时,比较器翻转,使触发器复位,功率晶体管关断,电流下降,这样,触发器输出的是恒频PWM信号,调制L297的输出信号,绕组相电流峰值由Uref确定。CONTROL为高电平时,对A、B、C、D有控制作用;而为低电平时,则对INH1和INH2起控制作用,从而可对电动机转向和转矩进行控制。