康珊珊, 唐晓强, 刘 莉, 佟 浩, 邵珠峰, 吴 刚
(清华大学 机械工程系, 北京 100084)
基于STC单片机的多电机驱动平台系统设计
康珊珊, 唐晓强, 刘 莉, 佟 浩, 邵珠峰, 吴 刚
(清华大学 机械工程系, 北京 100084)
针对“制造工程综合实践”课程,开发出一套多电机驱动平台系统,用于典型机械系统模型的装配、测试。该平台电路部分采用STC89C52单片机进行控制,包括稳压、滤波、功率放大等,能实现多台直流电机和步进电机的正反转、调速、步进控制,同时具有红外遥控功能。该平台提供了一个开放式的编程环境,为机电教学中的装配、测试提供了一个可扩展的实验教学平台。
电机驱动平台; 单片机; 步进电机控制
清华大学开设的“制造工程综合实践”课程,是以机械系统为对象,面向大四本科生开设的全实践课程。该课程要求学生自选任务,自主完成设计、加工、测量、装配、测试全部环节,制造出典型机械系统。然而,当学生用加工出的零件和组件进行装配测试时,却没有一个通用的、适用性强的装配测试平台。
为此,开发了一个多电机驱动平台系统。该平台适用多种典型机械系统模型的装配及运动测试,如汽车发动机活塞系统模型(曲柄滑块运动)、飞机起落架系统模型(双摇杆机构运动)、电风扇摆头系统模型(双摇杆机构运动)等[1-2]。对该平台提出的具体指标为:能同时驱动直流电机和步进电机,最高驱动电流不小于4 A,能够编程及遥控控制电机转速,低压供电。
本文主要讨论平台系统的电路软硬件实现,不包括机械部分。
该多电机驱动平台系统如图1所示,包括单片机控制、稳压、滤波、功率放大、红外遥控、电机等。
(1) 单片机及其最小系统;
(2) 采用7 V电池供电,经稳压电路转换为5 V;
(3) 通过红外接收装置,实现遥控;
(4) 功率放大,输出最高4 A的电流驱动电机;
(5) 通过对单片机编程,实现电机之间复杂的时序、速度控制。
对于典型的机械系统模型,需要对电机实现不同的控制。例如曲柄滑块运动,只需要对一个直流电机实现起停、正转、反转、调速控制;双摇杆机构则需要1个步进电机实现起停、转角、调速控制;有些机构需要1个直流电机和1个步进电机。该平台电路部分充分考虑多种需求,可实现4台直流电机,或2台步进电机,或2台直流电机和1台步进电机的正/反转、调速、步进控制,具有适应性强、可扩展的优势。
图1 系统整体结构
选用STC89C52单片机。STC89C52芯片是一种低功耗、高性能CMOS 8位微控制器,内含8 KB字节Flash、512字节RAM、3个16位定时器/计数器、4个外部中断、方便使用C语言编程且编程友好、价格低廉。鉴于该芯片应用的广泛性,以及可以实现平台所需功能的信号控制,所以选择了该芯片[3-5]。
使用高输出功率的7 V锂电池电源和三端稳压器L7805,输出功率与电压分别保证控制模块与电机驱动模块的运行(见图2)。需要注意的是:在稳压芯片两端需要分别加上续流电容和滤波电容,还需要加上外部二极管[6],以防止高容性负载引起的输入短路和损坏芯片。
图2 稳压电路
电机驱动电路(见图3)采用L298N芯片。L298N芯片是高电压、大电流双全桥驱动芯片,用于驱动感性负载,如继电器、直流电机、步进电机等。由于该芯片工作电压最高达46 V,总直流电流最高达4 A[7],实验时,安装4个直流电机测试,电路运行后空载电流仅为0.19 A,可以满足本设计和拓展设计的电流需要。因驱动的是感性负载,在断电瞬间会出现一个很高的反向感应电动势,并联二极管是为电流提供释放通道,以免瞬时高压损坏电路中芯片。电路设计中多处添加滤波电容和续流电容,以保证电源信号的稳定。
图3 电机驱动电路
选用TSOP1838微型红外接收器,载波信号频率为38 kHz[8]。由于红外发射信号每一帧时长大约是几十毫秒,采用示波器的单次捕获方式(signal)[9],设定水平标度10 ms,垂直标度为2 V,下降沿触发,触发电压2 V。对红外遥控器进行码值验证,图4是按下红外发射器“2”键的脉冲编码,可看出红外遥控器发射端采用NEC红外传输协议[10-11]。
图4 示波器捕获红外接收脉冲编码
软件开发采用Keil uVision4集成开发环境,应用C语言进行编程。系统软件分为主程序(见图5)和红外接收中断(见图6)2部分。其中主程序模块主要包括初始化设置,循环设置,以及调用红外码值处理、直流电机控制、步进电机控制3个子程序。
图5 主程序流程
图6 红外接收中断流程
3.1 红外接收中断
红外接收采用外部中断,设置下降沿触发,触发后采用定时器T0计时,判断前2个下降沿之间的时间是否为红外发射器的引导码(9+4.5)ms,如果是,则将每个脉冲的时长存入数组,共包含33位数据,如图4所示。
3.2 红外码值处理子程序
将红外接收器接收到的数组中的数据分为5组,分别是1位引导码、8位用户码、8位用户反码、8位数据码和8位数据反码。根据NEC红外传输协议,每一位通过判定脉冲间隔即可判定0或1,如图7所示。而接收端脉冲与发送端脉冲高低电平相反,取8位数据码进行码值判断,如图4所示,数据码为0x18。
图7 发送端脉冲逻辑值
3.3 直流电机控制子程序
对于直流电机,采用脉宽调制(PWM)方法。电源并非连续地向电机供电,而是在一个特定的频率下以方波脉冲的形式提供电能[12]。通过改变方波信号的占空比,进行通电时长调节。由于电机为感性负载,有阻碍输入电流突变的能力,因此脉冲输入信号被平均分配到作用时间上。这样,改变在L298N始能端ENA和ENB上输入方波的占空比,就能改变加在电机两端的电压,从而实现电机调速。
通过控制L298N各输出端口的0、1顺序来控制正转、反转。通过延时程序控制L298N各输出端口的
0、1时长来进行电机调速。
3.4 步进电机控制子程序
步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号后,它就驱动步进电机按设定的方向转动一个固定的角度(即步距角)。步进电机的旋转是以固定的角度一步一步运行的,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的。对于步进电机,可以通过控制脉冲周期来控制电机转动的速度和加速度,从而达到调速的目的,例如在飞机起落架系统模型需要用到。
采用双极型两相四拍的方式控制步进电机[13],软件设计为两相激磁,脉冲时序如图8所示,步距角为7.5/4.5≈1.6°,可通过按键实现不同角度控制、通过改变脉宽实现调速。
图8 脉冲时序图与实际检测(3通道)对比
电机驱动程序如下:
MOTORSTED=2://第二拍else
{MotorStep = 0 ;} //第四拍
sign =0;
}
break;
default:break;
}
}
由程序可知,每按一次键,转过10次4个步距角,约1.6×4×10=64°,根据不同的机构要求,可以改变循环次数,调整每次按键转过的角度。
利用市场上采购的电机驱动模块,或许能很容易组装起一个电机驱动器,所做的工作仅仅是挑选电机和插接线,但不利于对硬件原理的认识和对细节的把握,也不利于系统的扩展和改进。而自己动手挑选芯片、设计电路、编写程序,进行实验装置的电机驱动平台设计,利用开放式编程环境可以模拟实际系统的速度变化、仿真真实环境下的测试,平台的性能稳定、体积小、成本低,为机电教学中的装配、测试提供了一个可扩展的实验教学平台。
本次开发的是驱动直流电机和步进电机的一体化平台,平台的总体控制精度还不高,需要进一步开发伺服电机平台,增加反馈控制环节,提供更精密的装配测试实验教学环境。
References)
[1] 朱金生,凌云.机械设计实用机构运动仿真图解[M].北京:电子工业出版社,2014.
[2] Sclater N, Chironis N P.机械设计实用机构与装置图册[M].邹平,译.北京:机械工业出版社,2007.
[3] 徐爱钧,彭秀华.单片机高级语言C51应用程序设计[M].北京:电子工业出版社,1998.
[4] 唐颖,阮越.单片机技术及C51程序设计[M].北京:电子工业出版社,2017.
[5] 李作进,聂玲,翟渊.51单片机基础实验与综合实践[M].成都:西南交通大学出版社,2016.
[6] STMICROELECTRONICS . L78xx L78xxC Positive voltage regulators[EB/OL].(2008-03-01).http://pdf.icpdf.com/pdf5/STMICROELECTRONICS/L7805_datasheet_598738/975361/L7805_datasheet.pdf.
[7] STMICROELECTRONICS. L298 DUAL FULL-BRIDGE DRIVER[EB/OL].(2000-01-01).http://pdf.icpdf.com/pdf1/STMICROELECTRONICS/L298N_datasheet_376055/612754/L298N_datasheet.pdf.
[8] Vishay Telefunken. TSOP18. Photo Modules for PCM Remote Control Systems[EB/OL].(2000-09-13).http://pdf.icpdf.com/pdf4/VISHAY/TSOP1_datasheet_894331/145358/TSOP1_datasheet.pdf.
[9] Tektronix. MSO3000和DPO3000系列数字荧光示波器用户手册[EB/OL].(2012-03-22).http://cn.tek.com/manual/1044250.
[10] Altium. NEC Infrared Transmission Protocol[EB/OL].( 2013-11-06).http://techdocs.altium.com/display/FPGA/NEC+Infrared+Transmission+Protocol.
[11] 聂诗良,李磊民.采用单片机发送并接收红外遥控信号的方法[J].机信息技术,2004,28(2):21-23,96.
[12] 见城尚志,永守重信.直流伺服电动机[M].陈忠,许上明,程树康,译.上海:上海科学技术文献出版社,1986.
[13] 坂本正文.步进电机应用技术[M].王自强,译.北京:科学出版社,2010.
Design of multi-motor drive platform system based on STC SCM
Kang Shanshan, Tang Xiaoqiang, Liu Li, Tong Hao, Shao Zhufeng, Wu Gang
(Department of Mechanical Engineering, Tsinghua University, Beijing 100084, China)
In view of the Manufacturing Engineering Comprehensive Practice course, a multi-motor drive platform system has been developed, which provides the assembly and test services for typical mechanical system models. The circuit of this platform partly uses the STC89C52 SCM(single chip microcontroller) to implement the control, including the voltage regulation, the filtering, the power amplification, etc., which can realize the forward and backward rotation, speed regulation and stepping control of many DC motors and stepping motors, and has the infrared remote control function at the same time. This platform furnishes an open programming environment, which provides an extensible teaching experimental platform for the assembly and test in mechatronics teaching.
motor drive platform; SCM; stepping motor control
TM383.6;TP368
: A
: 1002-4956(2017)09-0133-04
2017-03-21
清华大学2016年本科教学改革项目(ZY01-2)资助;清华大学第三届实验室创新基金项目(01201)资助
康珊珊(1980—),女,黑龙江大庆,硕士,工程师,主要从事精密测量及制造类实验教学.
E-mail:kangshanshan@tsinghua.edu.cn
10.16791/j.cnki.sjg.2017.09.033