《直流电机控制原理及C程序.doc》由会员分享,可在线阅读,更多相关《直流电机控制原理及C程序.doc(17页珍藏版)》请在三一办公上搜索。
1、 项目八 键盘控制电机方向和转速【教学目标】终极目标能利用AT89S52单片机及独立键盘,通过C语言程序实现键盘控制步进电机和直流电机的速度和方向,完成单片机输入输出控制系统的设计、运行及调试。促成目标1. 了解单片机产品开发的流程;2. 了解步进电机和直流电机结构和工作原理;3. 掌握步进电机和直流电机速度、方向控制关键技术;4. 掌握头文件的编写方法;5. 掌握电机速度、方向控制的电路设计和编程的方法;6. 会利用单片机I/O口实现电机速度、方向控制。8.1 单片机产品开发单片机产品开发是为完成某项任务而研制开发的单片机应用系统,是以单片机为核心,配以外围电路和软件,能实现确定任务、功能的
2、实际应用系统。根据不同的用途和要求,单片机产品的系统配置及软件也有所不同,但它们的开发流程和方法大致相同。8.1.1 单片机产品的结构单片机产品是由硬件和软件组成。硬件是指单片机、扩展的存储器、输入输出设备等硬件部件组成的,软件是各种工作程序的总称。一个典型单片机产品结构如图8-1所示。图8-1典型单片机产品结构从图8-1不难看出单片机产品所需要的一般配置: (1)单片机。如AT89C51、AT89C52、AT89S51以及AT89S52等单片机。(2)人机交流设备。输入设备有键盘和按键,输出设备有数码管、液晶显示模块和指示灯等。(3)信号采集的输入通道。如出租车的测距、测速装置,温控系统的温
3、度传感器、洗衣机的水位测量等设备。(4)向操作对象发出各种控制信号的输出通道。如空调启动压缩机的开关电路,控制彩电的频道切换、颜色、音量等的接口电路。(5)与其他计算机系统或智能设备实现信息交换,还需配置通信接口电路。如RS-232、RS-485等。(6)有时还需扩展外部RAM、EEPROM用于存放数据。如彩电遥控系统中存放系统数据的存储器。8.1.2 单片机产品开发流程1确定功能技术指标单片机产品开发流程是以确定产品的功能和技术指标开始的。首先要细致分析、研究实际问题,明确各项任务与要求,综合考虑系统的先进性、可靠性、可维护性以及成本、经济效益,拟订出合理可行的技术性能指标。2单片机产品总体
4、设计在对单片机产品进行总体设计时,应根据单片机产品提出的各项技术性能指标,拟订出性价比最高的一套方案。首先,应根据任务的繁杂程度和技术指标要求选择机型。选定机型后,再选择产品中要用到的其它外围元器件,如传感器、执行器件等。在总体方案设计过程中,对软件和硬件进行分工是一个首要的环节。原则上,能够由软件来完成的任务就尽可能用软件来实现,以降低硬件成本,简化硬件结构。同时,还要求大致规定各接口电路的地址、软件的结构和功能、上下位机的通信协议、程序的驻留区域及工作缓冲区等。总体方案一旦确定,系统的大致规模及软件的基本框架就确定了。3硬件设计硬件设计是指应用系统的电路设计,包括主机、控制电路、存储器、I
5、/O接口、A/D和D/A转换电路等。硬件设计时,应考虑留有充分余量,电路设计力求正确无误,因为在系统调试中不易修改硬件结构。硬件电路设计时应注意以下几个问题:(1)程序存储器一般可选用容量较大的EPROM芯片,如27128(16 KB)、27256(32 KB)或27512(64 KB)等。尽量避免用小容量的芯片组合扩充成大容量的存储器,程序存储器容量大些,则编程空间宽裕些,价格相差也不会太多。 (2)数据存储器和I/O接口根据系统功能的要求,如果需要扩展外部RAM或I/O口,那么RAM芯片可选用6116(2 KB)、6264(8 KB)或62256(32 KB),原则上应尽量减少芯片数量,使
6、译码电路简单。I/O接口芯片一般选用8155(带有256 KB静态RAM)或8255。这类芯片具有口线多、硬件逻辑简单等特点。若口线要求很少,且仅需要简单的输入或输出功能,则可用不可编程的TTL电路或CMOS电路。A/D和D/A电路芯片主要根据精度、速度和价格等来选用,同时还要考虑与系统的连接是否方便。(3)地址译码电路通常采用全译码、部分译码或线选法,应考虑充分利用存储空间和简化硬件逻辑等方面的问题。MCS-51系统有充分的存储空间,包括64 KB程序存储器和64 KB数据存储器,所以在一般的控制应用系统中,主要是考虑简化硬件逻辑。当存储器和I/O芯片较多时,可选用专用译码器74S138或7
7、4LS139等。(4)总线驱动能力MCS-51系列单片机的外部扩展功能很强,但4个8位并行口的负载能力是有限的。P0口能驱动8个TTL电路,P1P3口只能驱动4个TTL电路。在实际应用中,这些端口的负载不应超过总负载能力的70%,以保证留有一定的余量。如果满载,会降低系统的抗干扰。在外接负载较多的情况下,如果负载是MOS芯片,因负载消耗电流很小,所以影响不大。如果驱动较多的TTL电路,则应采用总线驱动电路,以提高端口的驱动能力和系统的抗干扰能力。数据总线宜采用双向8路三态缓冲器74LS245作为总线驱动器,地址和控制总线可采用单向8路三态缓冲区74LS244作为单向总线驱动器。(5)系统速度匹
8、配MCS-51系列单片机时钟频率可在212 MHz之间任选。在不影响系统技术性能的前提下,时钟频率选择低一些为好,这样可降低系统中对元器件工作速度的要求,从而提高系统的可靠性。4抗干扰措施单片机产品的工作环境往往都是具有多种干扰源的现场,抗干扰措施在单片机产品设计中显得尤为重要。根据干扰源引入的途径,抗干扰措施可以从以下两个方面考虑。 (1)电源供电系统为了克服电网以及来自系统内部其它部件的干扰,可采用隔离变压器、交流稳压、线滤波器、稳压电路各级滤波等防干扰措施。(2)电路上的考虑为了进一步提高系统的可靠性,在硬件电路设计时,应采取一系列防干扰措施:1)大规模IC芯片电源供电端VCC都应加高频
9、滤波电容,根据负载电流的情况,在各级供电节点还应加足够容量的退耦电容;2)开关量I/O通道与外界的隔离可采用光电耦合器件,特别是与继电器、可控硅等连接的通道,一定要采用隔离措施;3)可采用CMOS器件提高工作电压(+15 V),这样干扰门限也相应提高;4)传感器后级的变送器尽量采用电流型传输方式,因电流型比电压型抗干扰能力强;5)电路应有合理的布线及接地方式;6)与环境干扰的隔离可采用屏蔽措施。 5软件设计单片机产品的软件设计是产品研制过程中任务最繁重的一项工作,难度也比较大。对于某些较复杂的应用系统,不仅要使用汇编语言来编程,有时还要使用高级语言。单片机产品的软件主要包括两大部分:用于管理单
10、片机工作的监控程序和用于执行实际具体任务的功能程序。对于监控程序,应尽可能利用现成的监控程序。为了适应各种应用的需要,现代的单片机开发系统的监控软件功能相当强,并附有丰富的实用子程序,可供用户直接调用,例如键盘管理程序、显示程序等。因此,在设计系统硬件逻辑和确定应用系统的操作方式时,就应充分考虑这一点。 这样可大大减少软件设计的工作量,提高编程效率。对于功能程序要根据产品的功能要求来编程序。例如,外部数据采集、控制算法的实现、外设驱动、故障处理及报警程序等。单片机产品的软件设计千差万别,不存在统一模式。进行软设计时,尽可能采用模块化结构。根据系统软件的总体构思,按照先粗后细的方法,把整个系统软
11、件划分成多个功能独立、大小适当的模块。应明确规定各模块的功能,尽量使每个模块功能单一,各模块间的接口信息简单、完备,接口关系统一,尽可能使各模块间的联系减少到最低限度。这样,各个模块可以分别独立设计、编制和调试,最后再将各个程序模块连接成一个完整的程序进行总调试。6单片机产品调试单片机产品开发必须经过调试阶段,只有经过调试才能发现问题,改正错误,最终完成开发任务。实际上,对于较复杂的程序,大多数情况下都不可能一次性就调试成功,即使是资深设计人员也是如此。单片机产品调试包括硬件调试和软件调试。硬件调试的任务是排除系统的硬件电路故障,包括设计性错误和工艺性故障。软件调试是利用开发工具进行在线仿真调
12、试,除发现和解决程序错误外,也可以发现硬件故障。程序调试一般是一个模块一个模块地进行,一个子程序一个子程序地调试,最后联起来统调。利用开发工具的单步和断点运行方式,通过检查应用系统的CPU现场、RAM和SFR的内容以及I/O口的状态,来检查程序的执行结果和系统I/O设备的状态变化是否正常,从中发现程序的逻辑错误、转移地址错误以及随机的录入错误等。 也可以发现硬件设计与工艺错误和软件算法错误。在调试过程中,要不断调整、修改系统的硬件和软件,直到其正确为止。联机调试运行正常后,将软件固化到EPROM中,脱机运行,并到生产现场投入实际工作,检验其可靠性和抗干扰能力,直到完全满足要求,单片机产品才算研
13、制成功。8.2 工作模块21 步进电机控制系统设计与实现【工作任务】利用AT89S52单片机及独立键盘控制步进电机的速度和方向。独立键盘有反转按键、加速按键、减速按键和正转按键。步进电机电气参数:工作电压4.56.5,步进角是18。8.2.1 步进电机控制技术步进电机的结构及基本知识点在工作模块5中已经介绍过了,在这里只对实现步进电机速度和方向控制的关键技术进行介绍。1速度控制技术本工作模块使用的步进电机的步进角是18,由于步进电机旋转角度与输入脉冲数目成正比,所以输入20个脉冲信号,步进电机就会旋转20个步进角,且刚好转一圈(2018=360)。那么怎么控制步进电机的转速呢?下面我们先分析如
14、何实现步进电机转速为30转/分和转速为60转/分。(1)转速为30转/分旋转一圈的时间是60s/30圈=2s,旋转一个步进角的时间是2s/20=100ms(每圈20个步进角)。也就是说给一个脉冲信号,旋转一个步进角,延时100ms,再给一个脉冲信号,旋转一个步进角,延时100ms,这样就可以获得转速为30转/分。(2)转速为60转/分旋转一圈的时间是60s/60圈=1s,旋转一个步进角的时间是1s/20=50ms(每圈20个步进角)。和转速为30转/分比较,脉冲信号之间的延时时间为50ms,延时时间变短,转速提高了。根据以上分析,我们只要改变脉冲信号之间的延时时间,即改变每步之间的延时时间,便
15、可控制步进电机的转速。延时时间变短,转速提高,延时时间变长,转速降低。注意:步进电机的负载转矩与转速成反比,转速越快负载转矩越小,当转速快至其极限时,步进电机不再旋转。所以每走一步,必须延时一段时间。2. 方向控制技术本工作模块是采用1相励磁顺序,四种励磁状态为一个循环。只要改变励磁顺序,就可以改变步进电机旋转方向。(1)正转时,1相励磁顺序为:ABCD(2)反转时,1相励磁顺序为:DCBA8.2.2 步进电机控制系统电路设计按照工作任务要求,步进电机控制系统电路是由AT89S52单片机最小应用系统、步进电机驱动电路、键盘电路等模块构成。1键盘模块设计步进电机控制系统具有反转、加速、减速和正转
16、个功能,可以用个按键实现。由于按键数目少,键盘模块设计采用独立键盘。这个按键分别接到P2口的P2.0、 P2.1 、P2.2和 P2.3引脚,为反转按键、加速按键、减速按键和正转按键。如图8-2所示。图8-2 键盘电路2步进电机驱动模块设计由于步进电机的功率较大,步进电机驱动电路设计采用了高电压、大电流的ULN2003A,ULN2003A的详细介绍请参阅项目二技能拓展部分。P3口的P3.0、 P3.1 、P3.2和 P3.3四个引脚通过步进电机驱动电路分别接在步进电机的A、B、C、D。如图8-3所示。图8-3 步进电机驱动电路通过前面的键盘模块电路和步进电机驱动模块电路设计,运行Proteus
17、软件,新建“步进电机控制系统” 设计文件。按图8-2和图8-3所示放置并编辑AT89S52、CRYSTAL、CAP、CAP-ELEC、RES、MOTOR-STEPPER、ULN2003A、74LS04及BUTTON等元器件。完成步进电机控制系统电路设计后,进行电气规则检测,直至检测成功。如图8-4所示。8.2.3步进电机控制系统程序设计步进电机控制系统程序由main.h头文件、头文件包含和定义全局变量、步进电机运行函数run()以及主函数组成。1编写main.h头文件为了程序的可读性和编程方便,在main.h头文件里面对用到的数据类型、接在P3口上步进电机以及接在P3口上按键进行宏定义。宏定义
18、如下:#ifndef _MAIN_H_#define _MAIN_H_#define uint unsigned int#define uchar unsigned char#define step_moto_port P3#define FZ_KEY (!(P2_0)#define UP_KEY (!(P2_1)#define DOWN_KEY (!(P2_2)#define ZZ_KEY (!(P2_3)#endif2头文件包含和定义全局变量#include #include uint speed=1000; /设置延时参数初值为最小值,既转速最快uint speed_change=100
19、0; /延时参数初值uchar dir=0; /设置方向,dir=1为反转,dir=0为正转3步进电机运行函数run()这里采用的是1相励磁顺序,控制状态与P3口的控制码对应关系如表8-1所示。表8-1 控制状态与P3口的控制码的对应关系控制状态P3口控制码P3.3P3.2P3.1P3.0D相B相C相A相A相绕组通电01H0001B相绕组通电02H0010C相绕组通电04H0100D相绕组通电08H1000由表8-1可以看出,正转时,初始控制码为0x01,然后控制码左移1位,获得下一位控制码。反转时,初始控制码为0x08,然后控制码右移1位,获得下一位控制码。代码如下: void run(vo
20、id) speed = speed_change; while(speed-); /延时 if(dir = 1) /* dir = 0,正转*/ if(step_moto_port = 0x08) /如果控制码= 0x08(一个循环完成),取初始控制码 step_moto_port=0x01; else /左移1位,获得下一位控制码,并从P3口输出step_moto_port = 1; else /* dir = 1,反转*/ if(step_moto_port = 0x01) /如果控制码= 1; 4步进电机主函数main()void main(void) step_moto_port=0x
21、01; while(1) if(FZ_KEY) / 设置反转 dir = 1; while(LEFT_KEY) run(); /等待按键释放 if(ZZ_KEY) / 设置正转 dir = 0; while(RIGHT_KEY)run(); if(UP_KEY) / 加速 if(speed_change = 2000) /延时参数减量为1000,每按一次UP_KEY键减少1000 speed_change = speed_change - 1000; while(UP_KEY)run(); if(DOWN_KEY) / 减速 if(speed_change 20000) /延时参数增量为100
22、0,每按一次DOWN_KEY键增加1000 speed_change = speed_change + 1000; while(DOWN_KEY) run(); run(); / end while(1) / end main步进电机控制系统程序设计好以后,打开“步进电机控制系统”Proteus电路,加载 “步进电机控制系统.hex”文件。进行仿真运行,观察步进电机运行是否与设计要求相符。如图8-4所示。图8-4 步进电机控制系统仿真运行8.3工作模块22 直流电机控制系统设计与实现【工作任务】利用AT89S52单片机及独立键盘控制直流电机的速度和方向。独立键盘有反转按键、加速按键、减速按键和
23、正转按键。直流电机电气参数:额定工作电压5.0。8.3.1 直流电机控制技术1认识直流电机永磁式换向器直流电机,是应用很广泛的一种,只要在它上面加适当电压电机就转动。(1)结构与工作原理永磁式换向器直流电机是由定子(主磁极)、转子(绕组线圈)、换向片(又称整流子)、电刷等组成,定子作用是产生磁场,如图8-5所示。图8-5 直流电机结构直流电压加在电刷上,经换向片加到电枢绕组(转子线圈),使电枢导体有电流流过,由于电机内部有定子磁场存在,所以电枢导体将受到电磁力 f 的作用(左手定则) ,电枢导体产生的电磁力作用于转子,使转子以n(转/分)旋转,以便拖动机械负载。通过左手定则,可以判别电磁力f方
24、向(即转子旋转方向),如图8-6所示。图8-6转子旋转方向也就是说,转于是在定子磁场作用下,得到转矩而旋转起来。当它转动时,由于磁场的相互作用,也将产生反电动势,它的大小正比于转子的速度,方向和所加的直流电压相反。(2)永磁式换流器电机特点1)当电机负载固定时,电机转速正比于所加的电源电压。 2)当电机直流电源固定时,电机的工作电流正比于转予负载的大小。 3)加于电机的有效电压,等于外加直流电压减去反电动势。因此当用固定电压驱动电机时,电机的速度趋向于自稳定。因为负载增加时,转子有慢下来的倾向,于是反电动势减少,而使有效电压增加,反过来又将使转子有快起来的倾向,所以总的效果使速度稳定。 4)当
25、转子静止时,反电动势为零,电机电流最大。最大电流出现在刚起动的时候。 5)转子转动的方向,可由电机上所加电压的极性来控制。 6)体积小,重量轻。起动转矩大。 由于具备上述的那些特点,所以在医疗器械、小型机床、电子仪器、计算机、气象探空仪、探矿测井、电动工具、家用电器及电子玩具等各个方面,都得到广泛的应用。对这种永磁式电机的控制,主要有电机的起停控制、方向控制、可变速度控制和速度的稳定控制。2速度控制技术调节直流电机转速最方便有效的调速方法是对电枢(即转子线圈)电压U进行控制。控制电压的方法有多种,广泛应用脉宽调制PWM技术来控制直流电机电枢的电压。所谓PWM控制技术,就是利用半导体器件的导通与
26、关断,把直流电压变成电压脉冲序列,通过控制电压脉冲宽度或周期以达到变压的目的。3方向控制技术直流电机的转子转动方向可由直流电机上所加电压的极性来控制,可用桥式电路来控制直流电机的转动方向。控制直流电机正反转的桥式驱动电路有单电源和双电源两种驱动方式,通常采用单电源的驱动方式,就可以满足实际的应用需要,所以这里只介绍单电源的驱动方式。单电源方式的桥式驱动电路又称为全桥方式驱动或者H桥方式驱动,如图8-7所示。图8-7 H桥方式驱动电路图8-7中的二极管称为续流二极管,主要作用是消除直流电机所产生的反向电动势。三极管是PNP三极管,基极为高电平时三极管关断,为低电平时三极管导通。直流电机正转时三极
27、管Q1和Q4导通,反转时三极管Q2和Q3导通,在这两种情况下,加在直流电机两端的电压极性相反。当四个三极管全部关断时,直流电机停止转动。若是Q1与Q3关断、Q2与Q4导通时,直流电机处于短路制动状态,将立即停止转动。这四种状态所对应的H桥式驱动电路状态如图8-8所示。正转 反转 停止 制动图8-8 直流电机和H桥式驱动电路四种对应状态8.3.2直流电机控制系统电路设计按照工作任务要求,直流电机控制系统电路是由AT89S52单片机最小应用系统、H桥式驱动电路、独立键盘及直流电机构成。P3口的P3.0、 P3.1 、P3.4和 P3.5四个引脚分别接在H桥式驱动电路的PWM1、PWM2、PWM3和
28、PWM4。P2口的P2.0、 P2.1 、P2.2和 P2.3四个引脚分别接反转按键、加速按键、减速按键和正转按键。直流电机控制系统电路设计如图8-9所示。图8-9 直流电机控制系统电路运行Proteus软件,新建“直流电机控制系统” 设计文件。按图8-9所示放置并编辑AT89S52、CRYSTAL、CAP、CAP-ELEC、RES、MOTOR、1N4148 (二极管)、2N5771(三极管)、BUTTON。等元器件。完成直流电机控制系统电路设计后,进行电气规则检测,直至检测成功。8.3.3直流电机控制系统程序设计直流电机有正转、反转、停止和制动四种运行状态。在这四种运行状态下,P3口引脚与H
29、桥式驱动电路对应关系如表8-2所示。表8-2 运行状态与P3口引脚的对应关系运行状态P3.5P3.4P3.1P3.0PWM4(Q4)PWM3(Q3)PWM2(Q2)PWM1(Q1)正转0110反转1001停止1111制动0101直流电机控制系统程序主要由头文件、初始化、按键功能处理、直流电机运行中断处理等组成。1编写main.h头文件在这里只给出与工作模块21的main.h头文件不一样部分。电机驱动接口是接在P3.0、P3.1、P3.4和P3.5,为了以后能对殊功能寄存器P3口这4个寻址位进行操作,定义了4个sbit类型位变量,代码如下:#define _Nop() _nop_()sbit P
30、WM1 = P30;sbit PWM4 = P35;sbit PWM2 = P31;sbit PWM3 = P34;2头文件包含和定义全局变量#include #include /程序中使用了_nop_(),此函数后面介绍#include bit Moto_Dir=0; /定义位变量,为0正转,为1反转uchar irq_count; /中断次数计数器uchar irq_count_t; /设置需要中断的次数uchar PWM_TIME_H; /设置输出高电平的宽度uchar PWM_TIME_L; /设置输出低电平的宽度bit i=0; / i=1输出高电平状态,i=1输出低电平状态3直流电
31、机控制系统初始化/*使Q1、Q2、Q3、Q4同时关断,电机处于停止状态*/PWM1=1; PWM2=1; PWM3=1; PWM4=1;irq_count=0; /中断次数计数器清0i=0;PWM_TIME_H=80; /设置占空比为1:5,PWM脉冲周期是100msPWM_TIME_L=20;/*定时器T1初始化*/ET1=1; / 开T1中断TMOD=0x11; / T1都为方式1计时*/TH1=0xFC; TL1=0x18; / T1初值,定时时间1ms(12MHz)TR1=1; / 定时器启动EA=1; / 开总中断4直流电机控制系统按键功能处理(1)反转按键处理if(FZ_KEY)
32、ShortDelay(); if(FZ_KEY) / 延时去抖 Moto_Dir=1; PWM3=0; PWM4=1; while(FZ_KEY); /等待FZ_KEY释放 / end if(FZ_KEY)(2)正转按键处理if(ZZ_KEY)ShortDelay(); if(ZZ_KEY) / 延时去抖 Moto_Dir=0; PWM3=1; PWM4=0; while(ZZ_KEY); /等待ZZ_KEY释放 / end if(ZZ_KEY)(3)加速按键处理 if(UP_KEY) ShortDelay(); if(UP_KEY) / 延时去抖 if(PWM_TIME_H 10) /最大占
33、空比为9:10 PWM_TIME_H-; PWM_TIME_L = 100-PWM_TIME_H; / end if(UP_KEY) while(UP_KEY); / end if(UP_KEY)(4)减速按键处理if(DOWN_KEY) ShortDelay(); if(DOWN_KEY) / 延时去抖 if(PWM_TIME_H =irq_count_t) /判断中断次数是否到 irq_count=0; /计数器清0i=i; /高电平或低电平状态标志转换 if(i=1) irq_count_t = PWM_TIME_H; else irq_count_t = PWM_TIME_L; if(
34、Moto_Dir=1) PWM2=PWM2; PWM1=1; else PWM2=1; PWM1=PWM1; 直流电机控制系统程序设计好以后,打开“直流电机控制系统”Proteus电路,加载 “直流电机控制系统.hex”文件。进行仿真运行,观察直流电机运行是否与设计要求相符。8.4 技能拓展 步进电机智能控制步进电机是利用输入数字信号转换成机械能量的电气设备,由于步进电机旋转角度与输入脉冲数目成正比,只要控制输入的脉冲数目便可控制步进电机转动角度。因此,常用于精确定位和精确定速,如机器人均使用步进电机作动力,并且可以精确控制机器人的动作。8.4.1步进电机智能控制思路通过工作模块5和工作模块2
35、1的学习,我们已经知道了步进电机必须加上驱动电路才能转动,驱动电路的信号输入端必须输入脉冲信号,若无脉冲输入时,转子保持一定的位置,维持静止状态;反之,若加入适当的脉冲信号时,转子则会以一定的角度转动,如果加入连续脉冲时,则转子旋转的角度与脉冲频率成正比。为此,我们掌握了如何使用按键对步进电机进行方向和转速控制。但是我们如何对步进电机进行精确定位和精确定速呢?由于步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,它的旋转是以固定的角度一步一步运行的。这样,我们就可以通过以下两个方面对步进电机进行智能控制,达到精确定位和
36、精确定速的目的。(1)通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;(2)通过控制脉冲频率来控制电机转动的速度和加速度,从而达到精确定速和调速的目的。作为一种数字伺服执行元件,步进电机具有结构简单、运行可靠、控制方便、控制性能好等优点,步进电机智能控制可以广泛应用在数控机床、机器人、自动化仪表等领域。8.4.2步进电机智能控制组成步进电机智能控制主要包括:单片机、键盘输入模块、显示模块以及步进电机动控制模块等部分。步进电机智能控制的结构框图如图8-10所示。图8-10 步进电机智能控制结构框图键盘输入模块主要完成数据输入及控制输入;显示模块主要对步进电机设置和运行状态进行显示(如显示
37、步进电机设置要旋转的数圈以及正反转指示等);步进电机控制模块主要是由单片机输出控制码到驱动电路控制步进电机的运转。【技能训练8-1】步进电机智能控制设计设计一个步进电机智能控制。要求能从键盘上输入步进电机转数,控制步进电机的正、反转及启停,并显示转数。1键盘设计键盘采用的是矩阵式键盘,键盘电路设计参考工作模块10,键盘功能分配如下:(1)0-9:为数字键(2)*:正逆转转数设定完成后,按“*”启动步进马达。(3)#:清除设定为正转及转数为00。(4)A:设定正逆转。按“A”键则LED亮,表示反转,再按则LED指示灯灭,表示正转,再按LED亮。2数码管显示模块设计数码管显示模块电路采用硬件译码输
38、出字型码控制显示内容,数码管是阳极数码管,七段字形译码器用的是74LS47,电路设计参考技能训练3-2。3. 步进电机控制模块设计步进电机控制模块电路采用有施密特触发器的六反方器74LS14和高电压、大电流的达灵顿晶体管数组产品ULN2003A,电路设计参考工作模块21。4. 步进电机智能控制电路实现步进电机控制模块电路、键盘电路、数码管显示模块电路分别接在AT89S52单片机的P0口、P1口、P2口,接在P3.0的LED是步进电机正反转的指示灯,步进电机智能控制电路设计如图8-11所示。图8-11步进电机智能控制电路5步进电机智能控制工作过程由键盘输入转数,设定正反转后,按确认键。单片机则根
39、据设定由P0口送出控制码经74LS14和ULN2003A达林顿管驱动步进电机转动。同时,LED数码管显示设定的转数,步进电机每转动一圈,数码显示的数字减1,当减至零时,步进电机停止转动。LED亮,表示反转,LED指示灯灭,表示正转。步进电机智能控制C语言程序设计请参考工作模块10、工作模块21以及技能训练3-2。【关键知识点小结】1.单片机产品是由硬件和软件组成。硬件是指单片机、扩展的存储器、输入输出设备等硬件部件组成的,软件是各种工作程序的总称。2.单片机产品开发过程包括确定任务、总体设计、硬件设计、软件设计、系统调试、产品化等几个阶段。它们不是绝对分开的,有时是交叉进行的。 3.步进电机速
40、度和方向控制的关键技术。(1)速度控制关键技术:只要改变脉冲信号之间的延时时间,即改变每步之间的延时时间,便可控制步进电机的转速。延时时间变短,转速提高,延时时间变长,转速降低。每走一步,必须延时一段时间。(2)方向控制关键技术:只要改变励磁顺序,就可以改变步进电机旋转方向。如:正转时,1相励磁顺序为:ABCD反转时,1相励磁顺序为:DCBA4.键盘控制步进电机的方向和速度是由AT89S52单片机最小应用系统、步进电机驱动电路、键盘电路等模块构成。反转按键、加速按键、减速按键和正转按键分别接到P2口的P2.0、 P2.1 、P2.2和 P2.3引脚。驱动电路采用高电压、大电流的ULN2003A
41、,分别接到P3口的P3.0、 P3.1 、P3.2和 P3.3引脚。 5.永磁式换向器直流电机是由定子(主磁极)、转子(绕组线圈)、换向片(又称整流子)、电刷等组成,定子作用是产生磁场。转于是在定子磁场作用下,得到转矩而旋转起来。 6. 直流电机速度和方向控制的关键技术。(1)速度控制关键技术:调节直流电机转速最方便有效的调速方法是对电枢(即转子线圈)电压U进行控制。广泛应用脉宽调制PWM技术来控制直流电机电枢的电压。PWM控制技术就是利用半导体器件的导通与关断,把直流电压变成电压脉冲序列,通过控制电压脉冲宽度或周期以达到变压的目的。(2)方向控制关键技术:通过改变直流电机上所加电压的极性来控制。可用H桥式驱动电路来控制直流电机的转动方向。7.直流电机和H桥式驱动电路有四种对应状态。正转时三极管Q1和Q4导通,反转时三极管Q2和Q3导通,在这两种情况下,加在直流电机两端的电压极性相反。当四个三极管全部关断时,直流电机停止转动。若是Q1与Q3关断、Q2与Q4导