基于单片机红外发射步进电机控制系统设计

2014-11-02 15:51沈翠凤
关键词:数码管中断键盘

陈 中,沈翠凤,张 凯

1.盐城工学院电气工程学院,江苏盐城 224051;

2.中能建江苏电力建设第一工程公司靖江分公,江苏靖江 214513

单片机控制的步进电机调速系统有结构简单和编程方便等优点。但由于单片机在步进电机调速系统控制的设计时候按照一些文献[1]给出的方案,在具体设计时候会出现不同的问题,本文在系统硬件和软件设计的基础上,采用硬件设计和软件调试相结合的方法,对单片机控制的红外遥控步进电机调速系统控制进行了研究,充分利用单片机控制的特点和优良性,对出现的各种问题提出了解决的新方法。试验结果表明,该控制方法具有较高的实用价值。

1 基于单片机控制的步进电机调速系统的工作原理

以微处理器为核心的数字控制系统硬件电路标准化程度高,制作成本低,且元器件不受温度变化的影响,其控制软件能够进行逻辑判断和复杂运算,可以实现不同一般的线性调节最优化、自适应、非线性、智能化等控制规律,而且更改程序方便,数字控制系统稳定性好、可靠性高[2],可以提高控制性能。而且还有信息存储、数据通讯和故障诊断等优点。

STC89C52RC单片机有加密性强、超强抗干扰、超低功耗、在系统中可编程、无需编程器、无需仿真器、价格便宜等优点。本次设计采用STC89C52RC单片机作为控制核心,步进电机是一种将电脉冲转化为角位移、直线位移的控制微电机。当步进驱动器接收到一个脉冲信号,就驱动步进电机按设定的方向转动一个固定的角度(称为步距角),其旋转是以固定的角度一步一步运行的。它具有良好的启动性能和调速特性,它的特点是启动转矩大,最大转矩大,能在宽广的范围内平滑、经济地调速,转速控制容易,调速后效率很高。

当给步进电机施加一系列连续不间断的控制脉冲时,步进电机可以连续不断地旋转。每一个脉冲信号对应的是步进电机的某一相或两相绕组的通电状态的改变,也就使得对应的转子转过一个步距角。当通电状态的改变完成一个完整的循环时,转子就能刚好转过一个完整的齿距。常见的四相步进电机可以在不同的通电方式下运行,通电方式有单(单相绕组通电)四拍(A-B-CD-A……),双(双相绕组通电)四拍(AB-BCCD-DA-AB-……),八拍(A-AB-B-BC-C-CD-D-DA-A…….)等。在精密数控车床中,步进电机得到广泛的应用。

2 基于单片机硬件电路的设计

2.1 主电路的设计

由于是小功率步进电动机,本设计直接采用ULN2003AN芯片进行驱动,ULN2003AN是一种7路反向器的电路,即当ULN2003AN输入端为高电平时,ULN2003AN对应输出端则为低电平;当ULN2003AN的输入端为低电平时,ULN2003AN对应输出端则为高电平,步进电机得电旋转。由于ULN2003AN模块在通入电流过大时候可能损坏,因此在其输入端加限流电阻用以保护芯片,为了保证步进电机的电压满足要求,在设计中还加入了上拉电阻,主电路如图1所示。

图1 步进电机控制主电路Fig.1 Main circuit of stepper motor control

2.2 控制电路的设计

基于单片机控制电路主要是键盘电路、数码管显示电路、红外接收电路、急停电路等组成,其中键盘电路采用矩阵键盘方法[3],下面介绍红外接收电路、数码管采用动态显示和急停电路的设计方法。

2.2.1 红外接收电路的设计

红外遥控接收可用红外接收二极管附加专用的红外处理电路方法,如CXA20106,但这种方法电路的复杂性高,通常不使用。因此,更好的接收方法是使用集成红外接收头。此次设计采用HS0038芯片。HS0038为直立侧面收光型,功耗低、灵敏度高。它接收红外信号频率为38 kHz,信号可以在被放大的同时进行检波、整形,然后取得TTL电平的编码信号。3个管脚分别是解调信号输出端、地、+5 V电源。由于红外接收电路产生的编码通过单片机外部中断进入单片机,故把HS0038的输出端接入单片机的外部中断端口的INTO脚。当遥控器发出一串信号时候,通过中断来检测遥控器的信号,再用定时器设定的时间来解码,从而判断遥控器发出信号的高低电平。

2.2.2 中断电路的设计

在单片机控制的步进电机设计中,一般要考虑到紧急情况的状况。由于各种原因需要步进电机立即停止工作,如过电压、过电流等以及加工过程中刀具问题等[3],可以采用断电的方法,但这种方法容易产生较大的冲击电流,对系统危害很大,故障排除后必须重新启动系统。单片机控制的步进系统,对于特殊情况下停止步进电机,设计采用中断方式进行。急停电路由按键和电阻组成,其一端接在单片机外部中断INT1上,另一端接地,采用低电平触发方式,当出现紧急情况时,按下急停按钮,产生中断,停止步进电机。另一个独立按键接在P3.1端口上,其作用是确定步进电机的高低速。

2.2.3 数码管显示电路

设计选用了共阳极4位数码管F5461BR-1N显示,其中只显示后面两位,采用动态显示方式。数码管的位选没有采用常见的三极管元器件,而是采用了74LS139芯片作为位选的控制。由P2.7和P2.6端口控制74LS139,使能端接地,采用直通方式。另外,P3.1端口还接发光二极管且串电阻,其作用是当单片机接收到红外信号后,发光一段时间,表明单片机已经接收到红外信号。

整个硬件电路如图2所示。

图2 单片机步进电机控制系统硬件电路图Fig.2 Hardware circuit of Stepper motor control

3 软件系统设计

软件系统主要有键盘扫描程序、键盘处理程序、显示程序、定时中断程序、红外解码程序和步进电机驱动程序组成,其方框图如图3所示。

3.1 数码管显示程序的编制

本设计采用的数码管动态显示方法,需要显示的数据通过P0口和限流电阻输入到数码管同时控制,进而控制数码管位选[4]。完整程序如下。

图3 基于单片机步进电机调速系统流程图Fig.3 Stepper motor control system flowchart based on microcontroller

3.2 步进电机调速程序

步进电机高低速是供电时间不同造成的,根据P3.1端口电平状态变化来确定步进电机的高低速。采用一个标志位 kp3,初始 kp3为零,当P3.1是由高电平变成低电平时候,kp3取反。根据kp3是1或0来决定步进电机的转速,这样做的好处,当按下连接P3.1端口的键盘时候,可以实现步进电机高低速转换。部分程序如下。

设计采用两两导通方式,也即是通过A-AB-B-BC等方式进行导通的,所以p37为高电平,等过了一拍延迟一段时间后,p36也为高电平。程序中delay()为延迟函数,延迟时间设定的不同,步进电机转速就不同

3.3 红外接收程序

远程发出的一串二进制代码,称为数据。按照各自功能,将其划分为引导码、地址码(用户码)、地址码(用户码)、数据码、数据反码5部分。遥控器发射代码时,均是低位在前,高位在后。引导码高电平为9 ms,低电平为4.5 ms。在接收到起始码后,真正的数据才开始发送[5],此时就可以准备接收了。完整程序如下。

红外接收头的输出端接到单片机的外部中断1上,根据外部中断的响应判定有无红外信号,红外信号有引导码和用户码等32位组成,其中最重要是用户码,用户码是1或0,根据外部中断两个下降沿的时间来确定,故采用了一个定时器,根据定时器的时间长短来判定用户码是1或0,从而把不同的一串编码分别开来[6]。

3.4 键盘扫描程序

由于采用矩阵式键盘,采用扫描方法来实现对按键的处理,流程如图4所示。

监视键盘的输入有3种扫描方式:编程、定时和中断[7]。从理论上来说,中断扫描是最好的,单片机正常工作时候,不需要关心键盘是否动作,只有当键盘动作产生中断,单片机才相应地进行处理,节省时间。编程扫描时,设计程序也不是很长,功能不复杂,采用编程扫描更方便。通过扫描程序确定具体按键的键号,再根据程序判断键号是数字键还是功能键,最后执行相应的键处理程序。本次设计采用扫描程序,部分程序如下。

图4 基于单片机步进电机调速系统键盘扫描程序流程图Fig.4 Flowchart of keyboard scanner of stepper motor control system based on microcontroller

4 实验结果

为了验证以上分析,根据硬件系统和软件系统设计,做成实物。实验结果如图5所示。

按键设定旋转圈数为78转时,数码管显示“78”,按下正转按钮,电机会顺时针旋转78圈,运行状态如图5a所示。当按键设定旋转圈数为68转时,数码管显示“68”,按下反转按钮时,电机会逆时针旋转68圈,运行状态图如图5b所示。如果按下高低速切换按键,步进电机就会改变转速。当用遥控器控制时,设定的步进电机旋转圈数显示在数码管上,再按遥控器的确认键,步进电机旋转,同时发光二极管亮,表明接收到红外遥控信号。状态如图5c所示。

图5 基于单片机步进电机调速系统实物实验Fig.5 Physical experiments of stepper motor control system based on microcontroller

通过实验,验证了本次硬件系统和软件系统设计的正确性。

5 结论

本文是在单片机控制步进电机调速系统的基础上,对红外接收、步进电机调速以及急停电路进行了硬件系统和软件系统的分析和设计。实验结果表明:采用软件调试和硬件调试相结合的办法,可以使得系统达到所设计的要求,为分析和设计基于单片机红外遥控的步进电机调速系统提供了新的方法。

[1]陈中,沈翠凤.基于单片机直流调速控制系统设计[J].盐城工学院学报,2012(3):54-58.

[2]周冠军,毕祥丽.LMD18200T的直流伺服电动机驱动器的设计[J].电子工业专用设备,2006(11):71-74.

[3]杭和平,杨芳.单片机原理和应用[M].北京:机械工业出版社,2003.

[4]陈伯时.电力拖动自动控制系统——运动控制系统[M].3版.北京:机械工业出版社,2003.

[5]李兰友.单片机开发应用十例[M].北京:电子工业出版社,1994.

[6]谭运光.单片机开发手册[M].北京:华龄出版社,1994.

[7]丁元杰.单片机原理及应用[M].北京:机械工业出版社,2005.

猜你喜欢
数码管中断键盘
你知道手机拨号键盘上为什么要有*和#吗?
键盘猫
微课教学设计之“数码管动态显示”
Cлово месяца
ikbc R300机械键盘
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
基于FPGA的中断控制器设计*
Linux中断线程化分析及中断延时测试