1、基于单片机的直流调速系统基于单片机的直流电机调速系统的设计1、直流调速系统的总体设计思路 本设计是利用一块单片机,实现对一部直流电机的启动、停止、加速、减速和转向的控制,具体硬件部分由晶振电路、复位电路、显示电路、键盘电路、电源电路、单片机、电机驱动电路、测速电路和电源电路等组成,系统框图由图1所示。 图1 直流调速系统框图 系统电路图如图2所示图2 直流调速系统硬件原理图1、主控制模块的设计与实现本设计选用AT89S52单片机作为主控制模块。AT89S52单片机是一种低功耗、高性能CMOS 8位微控制器,具有8K可编程Flash存储器,256字节RAM,32位I/O口线,看门狗定时器,2个数
2、据指针,3个16位定时器/计数器,全双工串行口。AT89S52单片机作为主控芯片,在该设计中主要实现以下几个功能:1)接收键盘输入的控制信号;2)驱动发光二极管显示电机工作状态;3)驱动八段数码管显示电机速度;4)通过使能端控制电机启动、正转或反转;5)产生PWM脉冲,对电机进行调速;6)接收脉冲测速电路测得的电机转速;主电路控制模块的硬件电路包含复位电路,时钟电路和电源三部分,共同组成单片机的最小系统,满足单片机正常工作,具体硬件电路如图3所示。图3 AT89S52最小系统复位电路是促使单片机进入复位状态的硬件结构,复位操作可以完成单片机的初始化,也可消除单片机的死机状态。复位原理是在时钟电
3、路开始工作后,在单片机RST引脚施加24个时钟振荡脉冲(即两个机器周期)以上的高电平,单片机便可实现复位。在本设计中采用手动加上电复位电路,上电复位部分的原理是RC电路的充放电效应,放电时间为:,由于本设计选用的晶振频率为12MHz,机器周期为,放电时间远大于2个机器周期的时间,可以实现正常复位。本设计中单片机工作于内部时钟模式,在XTAL1引脚和XTAL2引脚连接一个晶体振荡器,并联两个电容后接地构成单片机的时钟电路。由于AT89S52单片机P0口作为I/O口时,内部无上拉电阻,因此在使用时需上拉电阻(5k10k左右)才能正常工作。主控制器引脚分配表,表1:I/0口引脚号对应元件功能输入/输
4、出P0.0P0.73932DS1DS4八段数码管段选输出(上拉电阻)P1.01DS1八段数码管位选输出P1.12DS2八段数码管位选输出P1.23DS3八段数码管位选输出P1.34DS4八段数码管位选输出P1.45S1正转按键输入P1.56S2反转按键输入P1.67S3加速按键输入P1.78S4减速按键输入P2.021S5停止按键输入P2.122D1启动指示输出P2.223D2左转指示输出P2.324D3右转指示输出P2.425ADC0832片选信号输出P2.526ADC0832时钟信号输出P2.627L298正转信号输出P2.728L298反转信号输出P3.010L298使能信号输出P3.2
5、12ADC0832测速脉冲输入(中断)RST9复位电路复位信号输入XTAL119晶振电路时钟信号输入XTAL218晶振电路时钟信号输出VCC40电源+5V输入GND20地无无PWM调制(脉冲宽度调制是)一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。本设计采用单片机内定时器产生PWM脉冲,设计方法是调整一个周期内高电平持续时间占一个周期时间的比例,即调整脉冲的占空比。将产生的脉冲输入到L298的EN A端,
6、通过控制H桥一路桥臂两个晶闸管的导通时间来控制电机的转速。图4所示的是几种占空比不同的PWM脉冲波形。图4 几种占空比不同的PWM脉冲波形2、转速检测模块的设计与实现转速检测模块采用光电编码器作为检测器件。测速原理为:在电机转动轴上安装带有感光孔的编码盘,然采用红外对管的传感器来记录脉冲的数目,进而通过脉冲数求得电机在一段时间内转的圈数,从而计算出电机的转速。设码盘上有1个感光孔,电机转动时间T(单位s)内计数器记得的脉冲数为N,那么电机此时的转速为: (rad/s)。由于光电编码器输出的信号为模拟信号,故在传感模块与单片机间加入A/D转换模块ADC0832,将转换过的数字信号检测到的转速信号
7、发送到单片机中。测速模块具体硬件电路如图5所示。图5 转速检测模块 ASC0832是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。该芯片具有双通道A/D转换,输入输出电平与TTL/CMOS相兼容,5V电源供电,工作频率为250KHZ,转换时间为,低功耗仅为15mW。芯片接口说明如表2所示:接口引脚号功能/CS1片选使能,低电平有效CH02模拟输入通道0CH13模拟输入通道1GND4地DI5数字信号输入DO6数字信号输出CLK7芯片时钟输入VCC(Vref)8电源及参考电源输入3、直流电机驱动模块的设计与实现本设计中直流电机驱动部分采用专用电机驱动芯片L298对电机进行驱动。L2
8、98为SGS-THOMSON Microelectronics出产的全桥步进电机专用驱动芯片,内部包含4信道逻辑驱动,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含两个高电压、大电流全双H桥驱动器,接收标准TTL逻辑准位信号。L298管脚功能说明表3所示:管脚引脚号功能IN151A1输入端,TTL电平IN271A2输入端,TTL电平EN A61EN使能端,低电平禁止输出SENSE A1电流检测端OUT121Y1输出端OUT231Y2输出端VSS9逻辑电源电压,此引脚与地之间必须连接100uF电容器VS4功率电源电压,此引脚与地之间必须连接100uF电容器GND
9、8GND地 L298对直流电机控制逻辑真值表,表4:输入功能EN A=HIN1=H;IN2=L正转IN1=L;IN2=H反转IN1=IN2制动EN A=LIN1=;INT2=无输出,电机不工作 直流电机驱动模块的硬件实现如图6所示:图6 电机驱动模块H桥驱动电路原理: 如图7所示,H桥驱动电路是一种典型的直流电机控制电路。H桥驱动电路由4个三极管组成H桥条桥臂,通过控制对角桥臂上的一组三极管,使电流以不同的方向流过电机,从而控制电机的转向。图7 H桥驱动电路 4、显示模块本设计中显示模块采用四个八段数码管显示电机转速,八段数码管采用共阴极方式连接,当单片机输出高电平时,点亮数码管。一般点亮数码
10、管内部发光二极管时需要5mA以上电流,但是单片机的I/O口送不出如此大的电流,所以数码管与单片机连接时需要加驱动电路,可采用上拉电阻的方式或专用驱动芯片(比如74HC573锁存器)对数码管进行驱动。本设计中采用上拉电阻的方式对数码管进行驱动。如图8所示:图8 显示模块5、按键模块本设计的键盘模块由5个弹性按键,采用低电平输入方式进行信号的输入,其中加入5个1k的限流电阻保证单片机的I/O口的输入电路不会太大。如图9所示:图9 按键模块6、电源模块单片机系统需要一个稳定的工作电压才能正常工作,设计者习惯采用线性稳压器件(如78xx系列三端稳压器件)制作电源电路。本设计采用LM2576作为电压调节
11、和稳压器件,将较高的直流电转变成单片机所需的工作电压。如图10所示: 图10 电源模块6、调速系统的软件设计实际的应用程序一般都有一个主程序(包括若干功能模块),若干个子程序(每个中断程序一般作为一个功能模块,也可以包括多个功能模块),以及若干个子程序,共计三大部分构成。该软件部分主要完成电机的控制和速度调节。(1)软件实现流程如图11所示:图11 单闭环直流调速系统软件主流程图(2)部分主要代码1.单片机引脚宏定义#include#ifndefne Motor_H_#define Motor_H_/*速度显示控制*/unsigned char code tabel=0x3f,0x06,0x5
12、b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71 /八段数码管显示数表sbit LED0=P10;sbit LED1=P11;sbit LED2=P12;sbit LED3=P13;/*A/D模块*/ sbit CS=P24; sbit CLK=P25; sbit DO=P32;/*定义PWM速度控制*/sbit pwm=P30;/*电机工作状态控制*/ sbit IN1=P26; sbit IN2=P27;/*定义按键引脚*/sbit ZZ_KEY=P14; /正转sbit FZ_KEY=P15; /反转sbit ADD_KEY=P16;sbit SUB_KEY=P17;sbit STOP_KEY=P20;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1