更新时间:2022-07-19 13:02:02作者:佚名
摘要:本设计采用凌阳16位单片机对步进马达进行控制,通过IO口输出的具有时序的方波作为步进马达的控制讯号,讯号经过芯片L298N驱动步进马达;同时,用4X4的按键来对马达的状态进行控制,并用数码管显示马达的怠速,采用作为4位单个数码管的显示驱动,从单片机输入讯号;借助凌阳单片机的语音功能播报马达的怠速。
关键词:步进马达单片机数码管
一、方案论证与比较
1、本设计的重点在于对步进马达的控制和驱动,设计中受控马达为四相六线制的步进马达(电阻33欧,步进1.8度,额定电流12V)
方案一:使用多个功率放大元件驱动马达
通过使用不同的放大电路和不同参数的元件,可以达到不同的放大的要求,放大后才能得到较大的功率。并且因为使用的是四相的步进马达,就须要对东路讯号分别进行放大,因为放大电路很难做到完全一致,当马达的功率较大时运行上去会不稳定,但是电路的制做也比较复杂。
方案二:使用L298N芯片驱动马达
L298N芯片可以驱动两个二相马达(如图1-1),也可以驱动一个四相马达,输出电流最高可达50V,可以直接通过电源来调节输出电流;可以直接用单片机的IO口提供讯号;并且电路简单,使用比较便捷。
图1-1
通过比较,使用L298N芯片充分发挥了它的功能,能稳定地驱动步进马达,且价位不高,故选用L298N驱动马达。而使用L298N时,可以用L297来提供时序讯号,可以节约单片机IO口的使用;也可以直接用单片机模拟出时序讯号,因为控制并不复杂,故选用前者。
2、数码管显示电路的设计
方案一:串行接法
设计中要显示4位数字,用作为显示驱动,其中带锁存,使用串行接法可以节省IO口资源,但要使用SIO,发送数据时容易控制。
方案二:并行接法
使用并行接法时要对每位数码好使IO口单独输入数据,占用资源较多。
因为设计中用一块单片机进行控制,资源有限,选择了方案一。另外,使用锁存也起到节省资源的作用。
二、步进马达控制原理
步进马达是数字控制马达,它将脉冲讯号转弄成角位移,即给一个脉冲讯号,步进马达就转动一个角度,为此特别适宜于单片机控制。步进马达可分为反应式步进马达(简称VR)、永磁式步进马达(简称PM)和混和式步进马达(简称HB)。
步进马达区别于其他控制马达的最大特征是单片机控制步进电机,它是通过输入脉冲讯号来进行控制的,即马达的总转动角度由输入脉冲数决定,而马达的怠速由脉冲讯号频度决定。
步进马达的驱动电路按照控制讯号工作,控制讯号由单片机形成。其基本原理作用如下:
(1)控制换相次序
通电换相这一过程称为脉冲分配。诸如:单相步进马达的三拍工作方法,其各相通电次序为A-B-C-D,通电控制脉冲必须严格依照这一次序分别控制A,B,C,D相的通断。
(2)控制步进马达的转向
倘若给定工作方法乱序换相通电,步进马达正转,假如按反序通电换相,则马达就反转。
(3)控制步进马达的速率
假如给步进马达发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短单片机控制步进电机,步进马达就转得越快。调整单片机发出的脉冲频度,就可以对步进马达进行调速。
三、理论设计
综和以上选定的方案,总的流程如图3-2所示。
图3-1
1、步进马达驱动电路
通过L298N构成步进马达的驱动电路,电路图如图3-2所示。
通过单片机的IOB8~IOB13对L298N的IN1~IN4口和ENA、ENB口发送方波脉冲讯号,起时序图如图3-3所示。
图3-2
图3-3
2、数码管显示电路的设计
数码管的显示驱动使用,通过的IOB0和IOB1口对DATA和CLK发送数据。
图3-4
3、4x4按键电路
在设计中,使用了标准的4x4按键,其电路图如图3-5所示。单片机的A口低8位为鼠标的插口。虽然设计要求中只须要4个键对步进马达的状态进行控制,但考虑到对控制功能的扩充,我们使用了4x4的鼠标。
图3-5
四、程序设计
在进行程序设计的过程中,主要分为五个部份:双机通信、语音报数、数字显示、步进马达驱动、键盘;其中双机通信的实现和语音报时比较有特征,将其流程简略介绍如下,其他部份见附的程序。
1、双机通信
图4-1
我们在实现双机通信的过程中使用了“三次握手”的方法,这是Intle网中成用的数据通信确认合同,其流程图如图4-1所示。
2、语音报数
程序设计中语音报数使用的是SACM-A2000,考虑到程序比较简单,首先使用了手动报数方法,但发觉不能进行连续报数,于是使用了非手动形式,流程图如图4-2所示。
图4-2
五、结果剖析与总结
应当说此次课程设计还是基本达到了设计的要求,并且也存在着难以解决的问题,因为在执行语音程序时对资源的消耗比较大,在语音报数的时侯会中断步进马达驱动讯号的输出,造成马达停转。因此,我们更改了方案,使用了两块单片机,通过双机通信来传递讯号,遗憾的是问题始终没有得到解决。
此次步进马达的综合实验我们学到了步进马达、数码管、4*4按键、语音报数和双机通信的使用,更重要的是学会了程序出问题时调试的技巧,并养成了Debug的习惯,学到了程序出问题后如何去解决的基本技巧。