收稿日期:2012-02-13*陕西省教育厅项目资助(项目编号:11JK0934)一种红外遥控式步进电机控制器的设计与实现令朝霞(陕西理工学院电气工程学院,陕西汉中723003)摘要:介绍了以89C2051单片机为核心,针对步进电机在手动和自动控制模式的基础上,设计出能够实现遥控操作的控制器。
以四相五线步进电机为研究对象,以集成红外接收器接收遥控器发来的信号作为输入信号,并送单片机进行解码,单片机根据接收的输入信号进行运算处理后,发出控制命令送步进驱动器,驱动步进电机工作。
实现了步进电机的手动、自动及遥控方式下的正反转,还实现定时时钟控制以及LCD 状态显示等功能。
关键词:步进电机;自动控制;手动;遥控Designed and realized of a kind of stepping motor controller based on infrared remote control typeLING Zhao-xia(School of Electricity Engineering of Shaanxi University of Technology ,Hanzhong 723003,China)Abstract:Introduced the 89C2051microcontroller as the core ,in view of the stepping motor in the manual and automatic control mode on the basis.It was designed thecontroller of realized remote operation.For research object of four phase five line stepping motor ,the integrated infrared receiver receive from the remote control of the signal ,and send MCU as input signal decoding ,SCM according to receive the input signal to operational treatment ,a control orders to send stepping drive ,drive stepping motor.Not only the motor is realized positive rotation and negative rotation by the manual ,automatic and remote control ,still is realized the clock control ,as well as LCD status demonstration function.The system was designed safe reliable and can be realized easily ,the programming simply easy to understand able.Keywords:stepping motor ;automatic control ;manual ;remote control步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载情况下,电机的转速、停止的位置取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
由于这一关系的存在,加上步进电机只有周期性的误差而无累doi:10.3969/j.issn.1563-4795.2012.10.012电子器件及应用50积误差等特点,使得在速度、位置等控制领域用步进电机来控制变的非常的简单,更加方便用户的应用与掌握。
随着信息技术的飞速发展,无线通信技术正在向各个领域渗透,特别是利用红外线进行通信,无论从小型化、轻量化、还是从安全性等方面考虑,其可行性都比较高。
本文主要研究步进电机在手动、自动控制模式下,通过增加红外遥控模式以实现步进电机的多功能操作。
1控制器组成为了能够实现步进电机的手动、自动及遥控等多功能操作模式,设计出如图1所示的系统组成原理图。
由图1知,该系统主要由传感器、A/D转换器、手动输入控制、红外线接收与发送电路、时钟控制电路、显示电路、电机驱动、步进电机及单片机控制器等部分组成。
其中手动输入控制电路主要用来实现系统参数的设置,以便在手动模式下控制电机的正反转;时钟控制电路一方面用来提供时钟信息,另一方面可以实现步进电机的定时启动与停止;传感器及A/D转换电路主要实现自动状态时,根据外部的检测信号,通过软件开发实现不同要求下步进电机的自动运行;红外发送与接收电路主要负责发送外部红外控制信息及接收遥控器发送来的控制信息,并送给单片机控制器进行解码,从而发出控制命令;显示电路主要实现对系统运行过程中的状态信息及工作模式进行显示;单片机控制器是系统的核心部件,完成对输入信号的采集,通过预先设置的算法进行运算、判断及处理,并发出控制命令或输出相应的显示信息。
电机驱动电路接收控制器发出的控制命令,驱动步进电机实现正转或反转。
2硬件电路设计根据图1所示组成框图,选择89C2051单片机作为控制器,以4×4输入键盘和按钮作为手动输入电路,选用DS1302作为时钟电路,以LCD1602作为输出显示电路,选择HS0038作为红外接收电路,采用PCF8591作为A/D转换装置,传感器选择了光敏元件。
选用ULN2003步进驱动器,对型号为28BYJ48型步进电机进行驱动。
下面主要介绍步进电机及步进驱动器,红外接收及时钟电路的设计。
2.1步进电机及步进驱动器(1)步进电机步进电机选用的是28BYJ48型四相八拍电机,电压为DC5V—DC12V。
当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。
每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。
当通电状态的改变完成一个循环时,转子转过一个齿距。
四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A),双(双相绕组通电)四拍(AB-BC-CD-DA-AB),八拍(A-AB-B-BC-C-CD-D-DA-A)。
(2)步进驱动器步进驱动器采用的是ULN2003驱动器,它是一个单片高电压、高电流的达林顿晶体管阵列集成电路。
它是由7对NPN达林顿管组成的,它的高电压输出特性和阴极钳位二极管可以转换感应负载。
ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。
可直接驱动继电器等负载。
输入5VTTL电平,输出可达500mA/50V。
达林顿管并联可以承受更大的电流,ULN2003是高耐压、大电流达林顿陈列。
(3)电机驱动电路28BYJ48型步进电机是4相5线的步进电机,而且是减速步进电机,减速比为1:64,步进角为5.625/64度。
如果需要转一圈,那么需要360/ 5.625×64=4096个脉冲信号。
该步进电机的耗电流为200mA左右,采用ULN2003进行驱动,驱动端口为P1.0(A),P1.1(B),P1.2(C),P1.3(D)。
正51转次序:AB组–BC组--CD组--DA组(即一个脉冲,正转5.625度);反转次序:AB组--AD组--CD组--CB组(即一个脉冲,正转5.625度),其接线原理如图2所示。
其中MOT1~MOT4依次接单片机的P1.0~P1.3口。
2.2红外线接收与发送电路红外线接收电路选用了型号为HS0038的集成红外接收器,静态时输出端输出高电平,当接收到红外信号后,按红外信号的数据波形输出负脉冲数据信号。
HS0038工作频率为38kHz,能对收到遥控信号进行放大、检波、整形、解调,得到TTL电平的编码信号,再送给单片机,经单片机解码并执行相关控制程序。
红外接收电路的输出接单片机的P3.2,该口对应的第二功能是外部中断0(INT0),利用该口的第二功能,一旦红外线信号到来,P3.2被拉低,单片机中止当前的工作转移到接收、处理红外信号。
开启中断功能的目的,既减轻了单片机的工作负担,又保证接收到的红外信号的完整性,单片机进入睡眠后,利用外部中断功能完成对单片机的唤醒,其接线图如图3所示。
红外发送电路可选用昂达播放器的遥控器,也可采用电视遥控器。
由于系统简单,采用昂达播放器的遥控器。
2.3时钟电路时钟电路采用DS1302集成芯片,其主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。
采用普通32768Hz晶振,步进电机的启闭时间都保存在DS1302自带的RAM中,不需要单独的EEPROM。
DS1302与CPU的连接仅需要三条线,即SCLK (7)、I/O(6)、RST(5)。
3系统软件设计软件系统主要包括主程序、红外中断子程序、A/D转换子程序、显示子程序、时钟控制子程序及步进电机程序。
下面主要介绍红外线解码程序。
3.1红外线解码原理昂达播放器的遥控器产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。
该芯片的用户识别码固定高8位地址为0BFH,低8位地址为40H;后16位为8位操作码(功能码)及其反码。
遥控器按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。
一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间。
当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9~18ms),高8位地址码(9~18ms),8位数据码(9~18ms)和这8位数据的反码(9~18ms)组成。
如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。
其代码宽度的计算方法为:16位地址码的最短宽度:1.12×16=18ms16位地址码的最长宽度:2.24ms×16=36ms已知8位数据代码及其8位反代码的宽度和不变:(1.12ms+2.24ms)×8=27ms。
所以得32位代电子器件及应用52码的宽度为(18ms+27ms)~(36ms+27ms)解码的关键是如何识别“0”和“1”,代码格式以接收代码为准,接收代码与发射代码反向。