
用单片机控制直流电机26246.docx
7页用单片机控制直流电机摘要本设计以AT89C51单片机为核心,以4*4矩阵键盘做为输入达到控制直流电机的启停、速度和方向,完成了基本要求和发挥部分的要求在设计中,采用TPWM技术对电机进行控制,通过对占空比的计算达到精确调速的目的一、设计方案比较与分析:1、电机调速控制模块:方案一:采用电阻网络或数字电位器调整电动机的分压,从而达到调速 的目的但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂 贵更主要的问题在于i般电动机的电阻很小,但电流很大;分压不仅会降 低效率,而且实现很困难方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小 车的速度进行调整这个方案的优点是电路较为简单,缺点是继电器的响应 时间慢、机械结构易损坏、寿命较短、可靠性不高方案三:采用由达林顿管组成的H型PWM电路用单片机控制达林顿 管使之工作在占空比可调的开关状态,精确调整电动机转速这种电路由于 工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单地实 现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采 用的PWM调速技术兼于方案三调速特性优良、调整平滑、调速范围广、过载能力大,因此 本设计采用方案三。
2 速工作方式:方案一:双极性工作制双极性工作制是在一个脉冲周期内,单片机两 控制口各输出一个控制信号,两信号高低电平相反,两信号的高电平时差决 定电动机的转向和转速方案二:单极性工作制单极性工作制是单片机控制口一端置低电平, 另一端输出RW信号,两口的输出切换和对IW勺占空比调节决定电动机的 转向和转速由于单极性工作制电压波开中的交流成分比双极性工作制的小,其电流 的最大波动也比双极性工作制的小,所以我们采用了单极性工作制\ 碉脉宽方式:调脉宽的方式有三种:定频调宽、定宽调频和调宽调频我们采用了定 频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在采用单 片机产生IW永冲的软件实现上比较方便4 件实现方式:方案一:采用定时器做为脉宽控制的定时方式,这一方式产生的脉冲宽 度极其精确,误差只在几个u方案二:采用软件延时方式,这一方式在精度上不及方案一,特别是在 引入中断后,将有一•定的误差但是基于不占用定时器资源,且对于直流电 机,采用软件延时所产生的定时误差在允许范围,故采用方案二二、系统分析与设计:总体设计方案的硬件部分 详细框图如图一所示键盘向单片机输入相应控 制指令,由单片机通过P2. 0与 P2. 1其中一口输出与转速相应 的RM脉冲,另一口输出低电驱动H型桥式电动机控制电路,实现电动机平,经过信号放大、光耦传递,转向与转速的控制。
电动机的运转状态通过LED显示出来电动机所处速度级以速度档级数显示正转时数字向右移动,反转时数字向左移动移动速 度分7档,快慢与电动机所处速度级快慢一一对应每次电动机启动后开始计时,停止时LED显示出本次运转所用时间,时间精确到0. U1、系统的硬件电路设计与分析电动机区动模块的电路设计与实现具体电路见下图二本电路采用 的是基于RW原理的 鲫桥式驱动电路图二RW电路曲四个大功率晶体管组成H型桥式电路构成,四部分晶体管以 对角组合分为两组:根据两个输入端的高低电平决定晶体管的导通和截止 4个二极管在电路中起防止晶体管产生反向电压的保护作用4个电感在电 路中是起防止电动机两端的电流和晶体管上的电流过大的保护作用在实验中的控制系统电压统一为5v电源,因此若达林顿管基极由控制 系统直接控制,则控制电压最高为5再加上三极管本身压降,加到电动机 两端的电压就只有4V左右,严重减弱了电动机的驱动力基于上述考虑, 我们运用了 4N25光耦集成块,将控制部分与电动机的驱动部分隔离开来 输入端各通过一个三极管增大光耦的驱动电流;电动机驱动部分通过外接 12V电源驱动这样不仅增加了各系统模块之间的隔离度,也使驱动电流得 到了大大的增强。
在电动机驱动信号方面,我们采用了占空比可调的周期矩形信号控制 脉冲频率对电动机转速有影响,脉冲频率高连续性好,但带带负载能力差脉 冲频率低则反之经实验发现,脉冲频率在40Hz以上,电动机转动平稳, 但加负载后,速度下降明显,低速时甚至会停转;脉冲频率在10Hz以下, 电动机转动有明显跳动现象实验证明,脉冲频率在15Hz-30Hz时效果最佳 而具体采用的频率可根据个别电动机性能在此范围内调节通过N1输入信 号,N2输入低电平与N1输入低电平,N2输入信号分别实现电动机的止转与 反转功能通过对信号占空比的调整来对车速进行调节速度分7档控制, 从高电平(第6档)到低电平(第0档)中间占空比以2逐极递减速度 微调方面,可以通过对占空比以1嵋勺跨度逐增或逐减分别实现对速度的逐加 或逐减2系统的软件设计本系统编程部分工作采用KELI-C51语言完成,采用模块化的设计方法, 与各子程序做为实现各部分功能和过程的入口,完成键盘输入、按键识别和 功能、JW永宽控制和LED显示等部分的设计单片机资源分配如下表:P0显示模块接口外部中断0 (P3. 2)键盘中断P1键盘模块接口P2. Q/P2. 1RW 电机驱动接口内部定时器0系统时钟系统主函数流程如图三:① RM脉宽控制:本设计中采用软件延时方式对脉冲宽度进行控制,延时程 序函数如下:void delay Unsigned char dlylevel) { int i=50*dlyleve 1;whi le (—i);}此函数为带参数OYLEVEU约产生IXYLEVEL^400us的延时,因此一个脉冲 周期可以由高电平持续时间系数hit和低电平持续时间系数lit组成,本设计中 采用的脉冲频率为25Hz,可得hlt+llt=100,占空比为hltZdlt+llt),因此耍 实现定频调宽的调速方式,只需通过程序改变全局变量hit, lit的值,该子程 序流程图如图四。
② 键盘中断处理子程序:采用中断方 式,按下键,单片机P3. 2脚产生一负跳沿, 响应该中断处理程序,完成延时去抖动、 键码识别、按键功能执行调速档、持续加/减速:调速档通过((M 共七档固定占空比,即相应档位相 应改变hit, lit的值,以实现调速档位的 实现而耍实现按住加陋速键不放时恒加 或恒减速直到放开停止,就需在判断是否 松开该按键时,每进行一次增加须少1% 占空比(即hlt+tr ,其程序 流程图如图五③ 显示子程序:利用数组方式定义显示缓存区,缓存区有8位,分别存放各 个LED管要显示的值显示子程序为一带参子程序,参数为显示缓存的数组名, 通过for (i=Q i
对于一个数的显示,先应转成BCD码,即取出每一个位,分别送入显示缓存 区,对于转BCD的算法,应对一个数循环除10取模,直至为0,程序如下:do {dispbuff [bcd_p]=bechangc%lQ /^dispbuff为显示缓冲区数组 bcdjp+4;} whi le(t>echang^^=lQ) "dispjp为数组指针软件设计中的特点:1、对于电机的启停,在RN控制上使用渐变的脉宽调整,即开启后由停止匀加速到默认速度,停止则由于当前速度逐渐降至零这样有利于保护电机, 如电机运用于小车上,在启动上采用此方式也可加大启动速度,防止打滑O 2对于运行时间的计算、显示配合传感器技术可用于计算距离,速度等重 要的运行数据攵键盘处理上采用中断方式,不必使程序对键盘反复扫描,提高了程序的效 率O三、测试结果与分析:结束语本设计在硬件上采用了基于RW技术的H型桥式驱动电路,解决了电机 马驱动的效率问题,在软件上也采用较为合理的系统结构及算法,提高了单 片机的使用效率,且具有一定的防飞能力但该设计也有不足之处,主要是 在关于速度的反馈上,无法提供较为直观的速度表示方式,因此,有必耍引 入传感器技术对速度进行反馈,以qm或rps表达当前的转速进行显示。
