当前位置:文档之家› 单片机的无刷直流电机速度伺服系统设计方案

单片机的无刷直流电机速度伺服系统设计方案

单片机的无刷直流电机速度伺服系统设计方案
单片机的无刷直流电机速度伺服系统设计方案

论文名称:基于单片机的直流伺服电机测速系统设计

学科专业:

申请人:

指导老师:

摘要

在工程实践中,经常会遇到各种需要测量电机转速的场合,例如在发动机、电动机、机床主轴等旋转设备的实验运转和控制中,常需要分时或连续测量、显示其转速及瞬时速度。当前主要流行的测速方法有霍尔测速、磁电式测速和光电编码测速等,但是霍尔测速不仅价格相对较高,而且信号杂波大,需要额外的滤波电路开销;而磁电式测速容易受外界环境干扰,因此不适合用于强电磁干扰的工业环境,本系统采用光电编码测试进行速度伺服系统设计。

为了能精确地测量转速,且保证测量的实时性,本文提出了一种基于单片机的直流伺服电机测速系统设计方案。该系统通过定时器模拟PWM控制电机转速,采用外部中断的边沿触发功能捕获测速脉冲,并以此分析计算出电机转速,然后显示到LED数码管上面;此外,为了达到更精确的电机控制,设计的串行通信方案,通过PC机下传指令改变PWM输出占空比,以此控制电机转速。系统软件在Keil C51集成开发环境中采用C语言编写,并在Proteus软件中搭建电路,仿真验证了方案的可行性。

关键词:测速;单片机;直流伺服电机;串行通信

ABSTRACT

目录

摘要1

ABSTRACT2

目录3

第一章绪论5

1.1 课题研究意义5

1.2 国内外发展现状5

1.3 论文组织6

第二章系统方案设计7

2.1 硬件设计方案7

2.2 软件设计方案8

第三章硬件设计9

3.1硬件框图设计9

3.2主控制器模块9

3.2.1 控制器芯片选型9

3.2.2 最小系统设计10

3.3与PC机通信模块11

3.4电机驱动模块13

3.4.1 引脚排列13

3.4.2 L298N电路原理图13

3.5电机测速模块14

3.6LED显示模块15

3.7本章小结16

第四章软件设计17

4.1 软件框架17

4.2 电机控制18

4.3 LED显示20

4.4 RS232串口通信21

4.5本章小结22

第五章系统测试23

5.1 电机测试23

5.2 串行通信测试25

5.3 本章小结28

第六章结论29

6.1 已完成工作29

6.2 后续工作29

致谢31

参考文献32

附录33

第一章前言

1.1

课题研究意义电机测速在工程实际应用中必不可少,当前的电机测速主要分为直接法和间接法。直接法即直接观测机械或者电机的机械运动,测量特定时间内机械旋转的圈数,从而测出机械运动的转速。间接法即由于机械转动导致其他物理量变化,测量这些物理量的变化与转速的关系来得到转速。当然,电机测速方法

还可以分为轮轴测速方法和非轮轴测速方法,其中轮轴测速运用发电机和光电变换原理,而非轮轴测速采用多普勒雷达和加速度计。

随着微型计算机的广泛应用,单片机技术的日新月异,特别是高性能单片机的出现,转速测量普遍采用以单片机为核心的数字式测量方法,使得许多控制功能及算法可以采用软件技术来完成,使系统能达到更高的性能。在工农业生产和工程实践中,经常会遇到各种需要测量转速的场合,例如在发动机、电动机、卷扬机、机床主轴等旋转设备的实验、运转和控制中,常需要测量和显示其转速。测量转速的方法分为模拟式和数字式两种。模拟式采用测速发电机为检测元件,得到的信号是模拟量。数字式通常采用光电编码器、圆光栅、霍尔元件等为检测元件,得到的信号是脉冲信号。讫今为止,已在现代汽车上广泛应用的霍尔器件有:在分电器上作信号传感器、ABS系统中的速度传感器、汽车速度表和里程表、液体物理量检测器、各种用电负载的电流检测及工作状态诊断、发动机转速及曲轴角度传感器、各种开关等等。

1.2 国内外发展现状

目前见到的许多关于直流电机的测速与控制类文献中,以研究无刷直流电机较多,采用电涡流式传感器,磁电式传感器,光电式传感器作为测速电机的重要元件。霍尔传感器的电机测速装置由单片机控制,能够做出使电机加速,减速的动作,还能够精确测速电机的转速,来控制电机的工作情况等多种功能。因此,霍尔传感器的电机测速装置可以看成简单的“计数器”,可广泛的应用于工厂电机的工作监控,汽车行驶速度显示,温室机器人的精密控制等技术领域,也可应用于复杂恶劣的航天航空工作环境,具有良好的民用和军用应用前景,

从发展趋势上看,总体的研究方向是提出质量更精确的测速方案,以及在考虑在复杂的环境中工作也能保持性能的稳定性。更加广泛的应用国民的生活生产中去。在研究方法上,有的采用软件仿真,从理论作深入的研究;有的通过实践总结提出一些具有使用价值的实践方法。

1.3 论文组织

本文提出一种基于单片机的无刷直流电机速度伺服系统设计方案,并在Proteus软件中仿真验证了方案的可行性。针对该方案的具体实施方法,本文完成了以下工作:

<1)提出了一种无刷直流电机测速方案。即通过增量式光电编码器测量电机转速,并采用单片机的外部中断管脚捕获光电编码器的输出脉冲,通过分析计算单位时间内脉冲个数确定电机转速。

<2)完成了系统的软硬件设计。硬件设计通过Protues软件搭建电路连接图,软件通过Keil C51集成开发环境编写PWM、串行通信、电机驱动、电机测速及LED显示等各级模块驱动程序。

<3)仿真验证了方案的可行性。在Protues软件中通过LED数码管显示所测转速与实际转速误差在3%以内;此外,通过VPSD软件虚拟串口对,模拟串行通信实现了PC机对电机转速的控制。

论文具体章节安排如下:

第一章,介绍了本课题的研究背景、意义及相关国内外发展现状。

第二章,分硬件和软件两部分介绍了系统的总体设计方案。

第三章,详细叙述了系统硬件设计的原理、方案及方法。

第四章,详细叙述了系统软件设计的流程。

第五章,在Protues中搭建仿真平台,对系统方案进行了测试和分析。

第六章,总结课题的研究工作,并指出了存在的问题和进一步的研究方向。

第二章系统方案设计

2.1硬件设计方案

本系统设计的是一个无刷直流电机测速装置,该系统由主控模块

成。通过微控制器产生PWM及电机驱动模块控制电机转动,然后通过电机测速模块测得当前电机转速,并显示到LED显示器上。PC机控制模块可以用于调节电机转速。系统方案设计框图如图2-1所示。

MCU LED显示

电机驱动电机

PC机

控制

电机测速

图2- 1 系统方案设计框图

<1)系统控制模块的核心部件采用AT89C51单片机,用于控制电机的顺时针、逆时针转动,同时通过测速模块采集电机转速等信息并显示到LED数码管上。此外,还可通过串行口接收PC机下传的指令,改变电机转速。

<2)LED显示模块用于显示当前电机的转速信息,考虑到所使用电机转速不大,每分钟转动圈速在1000以内,因此通过4位7段LED数码管进行显示。

<3)电机驱动模块可采用专用直流电机驱动芯片,通过单片机的I/O口来控制电机驱动芯片的控制信号,从而达到控制直流电机的目的。也可采用H型桥式驱动电路,这种驱动电路可以很方便地实现直流电机的四象限运动,分别对应正转、正转和制动、反转、反转和制动。经分析,专用直流电机驱动芯片电路规模较小,且容易使用单片机来控制,完全可以实现预期的功能,成本相对较低。因此采用L298N来控制小车的运行。

2.2软件设计方案

软件设计非常重要,它是系统的中枢,影响着整个系统性能的优劣。本系统软件设计方案是以上述硬件电路为基础的,包括电机控制模块、电机测速模块、串口通信模块及LED显示模块的程序设计与实现。程序设计采用C语言编写,编程环境是集成Keil C51编译器的集成编译环境。语音导航小车设计的软件设计结构框图如图2-2所示。

基于单片机的无刷直流电机测速系统软件框图

电机驱动模块

电机测速模块

LED显示模块

串口通信模块

电机顺时针转动程序

电机逆时针转动程序

电机测速程序

LED显示程序

串行口通信程序图2- 2 系统软件设计框图

电机驱动模块程序的设计实现了对电机转动方式和转动速度的控制;电机测速子程序的设计实现了对电机实际转速的采集,并通过液晶显示子程序将采集后分析计算的实际转速显示出来;串行口通信程序通过与PC机接入,实现对电机转速的上行控制。

软件的设计应尽量采用函数化、模块化,便于主函数的调用,便于系统调试。具体设计过程及详细内容见第四章。

第三章硬件设计

1.1

硬件框图设计本文选用AT89C51单片机作为系统的主控制器,用L298N电机驱动芯片驱动直流电机转动,用外部中断1捕获电机转动圈速的脉冲,然后交给主控制器分析计算得到当前电机转速,并通过4位7段数码管显示出当前转速。此外,一个按键通过外部中断0控制电机转动方向,且PC机通过串行通信控制电机转动速度。系统硬件框图如图3-1所示。

图3- 1 硬件设计框图

3.2主控制器模块

主控制器模块是系统硬件设计的核心,本节通过控制芯片选型和搭建最小系统两部分阐述。

3.2.1 控制器芯片选型

3.2.2 最小系统设计

3.3与PC机通信模块

RS-232是美国电子工业协会EIA

3.4电机驱动模块

电机的驱动采用双向PWM脉宽调制方式控制。采用这种控制方式可以方便地实现电机的正反转和转速变化。驱动芯片采用L298N,内部包含4通道逻辑驱动电路,是一种二相和四相电机的专用驱动器,即内含两个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,在6~46V的电压下,可以提供2A的额定电流。L298N还有过热自动关断功能,并有反馈电流检测功能。

3.4.1引脚排列

引脚排列如图3-4所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信号。L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电机。5、7、10、12脚接输入控制电平,控制电机的正反转,利用单片机产生PWM信号接到ENA、ENB控制使能端,控制电机的转速和停转。

图3- 2 L298N实物图

3.4.2L298N电路原理图

由于小车电机为7.2V,故L298N的VSS接7.2V电源。由单片机直接输出两路PWM驱动L298N,改变PWM调制脉冲占空比,可以实现精确调速。脉冲频率对电机转速有影响,脉冲频率高、连续性好,但带负载能力差;脉冲频率低则反之。为了保证L298N的正常工作,加装了片外续流二极管。图3-5所示为电机驱动L298N电路原理图。

图3- 3 电机驱动L298N原理图

3.5电机测速模块

一般情况下电机均采用光电编码器测速。光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器,是目前应用最多的传感器。一般的光电编码器主要由光栅盘和光电探测装置组成。在伺服系统中,由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转.经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号。通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。此外,为判断旋转方向,码盘还可提供相位相差90°的2个通道的光码输出,根据双通道光码的状态变化确定电机的转向。根据检测原理,编码器可分为光学式、磁式、感应式和电容式。根据其刻度方法及信号输出形式,可分为增量式、绝对式以及混合式3种。

由于本文采用Proteus软件对整体设计进行仿真,因此在Proteus中采用带转速编码输出的电机模型进行仿真,该类电机在Proteus软件中的关键字为MOTOR-ENCODER。该模型采用增量式旋转编码测试电机转速,并提供两路具有90°相位差的编码脉冲,可利用其中任何一个实现对转速的检测。电机模型下面实时显示了当前的转速信息,单位为圈/分钟。此外,为方便测速,可通过电机属性窗口的Pulses per Revolution选项设置电机每转动一圈输出的脉冲

数。

3.6LED显示模块

LED又称为数码管,它主要由7段发光二极管组成的不同组合,可以显示a~g为数字和字符显示段,h段为小数点显示,通过a~g为7个发光段的不同组合,可以显示0~9和A~F共16个数字和字母。LED可以分为共阴极和共阳极两种结构。共阴极结构即把8个发光二极管阴极连在一起。这种装入数码管中显示字形的数据称字形码,又称段选码。

点亮LED显示器有两种方式:一是静态显示:二是动态显示。所谓静态显示,就是当显示器显示某一个字符时,相应的发光二极管恒定的导通或截止。如图3-6所示为4位静态LED显示电路。该电路每一位可单独显示。只要在要显示的那位段选线上保持段选电平,该位就能保持显示相应的显示字符。这种电路的优点是:在同一瞬间可以显示不同的字符;但缺点就是占用端口资源较多。从下图可以看出,每位LED显示器需要单独占用8根端口线,因而,在数据较多时不采用此中设计,而是采用动态显示方式。

图3- 4 LED静态显示电路

+5V

图3- 5 LED动态显示电路

所谓动态显示,就是将要显示的多位LED显示器采用一个8位的段选端口,然后采用动态扫描方式一位一位地轮流点亮各位显示器。如下图3-7所示为4位LED动态显示电路。本设计用到的是LED显示器动态显示方式。

3.7本章小结

本章详细讲述了基于单片机的无刷直流电机速度伺服系统的硬件设计方案。系统选择低成本的AT89C51单片机做为微控制器,通过L298N驱动芯片驱动直流电机,并采用光电编码器进行电机测速,LED数码管采用动态显示方式显示当前所测得的电机转速,最后通过RS232与上层PC机通信,实时接收PC机下传的PWM占空比设定值,以控制电机转动速度。整体的硬件设计在保证系统可靠运行的前提下,以最小化硬件成本为目标进行规划。

第四章软件设计

4.1 软件框架

基于单片机的无刷直流电机速度伺服系统软件主要由主程序体和中断服务程序两部分组成,如图4-1所示。主程序体先进行初始化,然后判断相应标志位确定电机的转动方向,最后计算并显示电机转速值,电机转速单位为圈/分钟。其中:初始化程序包含定时器初始化、外部中断初始化及变量初始化等,初始化定时器0工作于方式一,用于产生PWM驱动电机转速,定时器1工作于方式二,为串行通信提供9600bps的波特率,串行通信初始化为无奇偶校验位、8位数据位、1位停止位和允许接收中断的工作模式,外部中断0和外部中断1均初始化为边沿触发,分别用于捕获按键和电机转速脉冲;初始化之后判断并驱动电机程序、电机转动与计算程序组成了主程序的主循环体。此外,中断服务程序分别完成相应的中断响应功能,外部中断0的中断服务程序用于改变转向标志位的状态,外部中断1的中断服务子程序用于捕获电机的转速脉

冲,串行口的中断服务子程序用于接收并设定PC 机下传的PWM 占空比,而定时器0的中断服务子程序完成技术初值的重新装载,并生产相应占空比的PWM 波,用于控制电机转动。

图4- 1 系统软件框架

4.2 电机控制

电机控制子程序包括PWM <脉宽调制)函数、前进函数和后退函数等部分组成,用于控制小车的运行方式及运行速度。

利用软件产生PWM 信号的基本思想是:单片机上电后,定时器T0初始化后开始计时,产生定时器溢出中断后,计数值加1,当计数值达到基准时间时,清计数寄存器。当计数值小于预定占空比值时,输出高电平,反之,则输出低电平。可以通过调整预定占空比值,控制输出高低电平时间<即PWM 脉冲的占空比),进而控制电机的转动速度。

例如:设PWM 脉冲的周期为1s ,则100个10ms 的时间片段为一个周期。假设要求占空比为90%,则I/O 口在一个周期的前90ms 输出为高电平,而在这个周期的后10ms 输出为低电平,则在此I/O 口输出占空比为90%的PWM 。PWM 脉冲模拟程序如清单4.1所示。

程序清单4.1 PWM 脉冲模拟

void Init(>

//定时器0初始化

{

TMOD=0x01。 //定时器0工作在方式1

ET0=1。 // 开定时器0中断

TR0=1。 //开定时器0

EA=1。 //开中断

PWM = 1。//开始输出高电平

}

void time_0(> interrupt 1 //定时器0中断服务子函数

{

TH0 = (65536 - 10000>/256。 //10ms计数初值赋值

TL0 = (65536 - 10000>%256。

dida++。 //计数变量加一

if(dida >= DutyCycle>

PWM = 0。 //电平转换

else

PWM = 1。

if(dida == 100> //计数变量超出则清零

{

dida = 0。

MotorSpeed = MotorPluse。//统计脉冲

MotorPluse = 0。

}

}

通过控制L298N两个输入口的的高低电平来编写电机的顺时针和逆时针转动程序,假设IN1=1,IN2=0电机顺时针转动,则IN1=0,IN2=1电机逆时针转动。其逻辑功能如表4-1所示,转动控制程序如清单4.2所示。

表4-1 L298N的逻辑功能

ENA(ENB> IN1 电机运转情况

H H L 顺时针

H L H 逆时针

H 同IN2(IN4>同IN1(IN3> 快速停止

L X X停止程序清单4.2 电机的顺时针和逆时针转动函数

void TurnClock(>

{

R = 1。

L = 0。

}

void TurnAntiClock(>

{

R = 0。

L = 1。

}

选择电机的顺时针或逆时针转动是通过一个按键实现的,该按键接入单片机的外部中断0,当外部中断0检测到一个边沿跳变后即进入中断服务子函数,在中断服务子函数中改变电子转动方向标志位的状态,这样一来便可以在主程序中通过该标志位的状态判断电机转动方向。电机转向控制的程序如清单4.3所示。

程序清单4.3电机转向控制

void Init(>

{

IT0 = 1。//边沿触发方式

EX0 = 1。 //允许外部中断0触发

EA = 1。

}

void main(>

{

Init(>。

while(1>

{

if(Flag>

TurnAntiClock(>。

else

TurnClock(>。

}

}

void Ex0(> interrupt 0 //外部中断0中断服务函数

{

Flag = !Flag。 //改变标志位状态

}

综上所示,电机控制部分由Flag标志位控制电机的转动方向、PWM控制电

机的转动速度,而外部中断0的按键和定时器0分别改变Flag标志位的状态及生成PWM。

4.3 LED显示

第三章已经提及,本系统的LED采用动态方式显示,即四位数码管共用一套段选接口,通过位选选中点亮的位。仿真采用共阴极数码管,P1为段选接口,P2^7 ~ P2^4分别为个位、十位、百位和千位的位选编码。由于人眼的视觉停留,保持不同位显示之间的短暂延时,即可给视觉带来同时显示的效果,本系统在不同位显示之间延时1ms以达到此效果。LED数码管显示程序如清单4.4所示。

程序清单4.4 LED数码管显示

void delay(uint i> //延时1ms子程序

{

uint j。

for(i。 i > 0。 i-->

for(j = 110。 j > 0。 j-->。

}

void LEDDisplay(>

{

P1 = table[MotorSpeed / 100]。

P2 &= ~0x20。

delay(1>。

P2 |= 0xf0。

P1 = table[MotorSpeed % 100 / 10]。

P2 &= ~0x40。

delay(1>。

P2 |= 0xf0。

P1 = table[MotorSpeed % 10]。

P2 &= ~0x80。

delay(1>。

P2 |= 0xf0。

}

4.4 RS232串口通信

串行口程序的设计主要是配置UART的工作模式和编写串行口中断服务子函数。配置寄存器TMOD的定时器1工作方式和定时器1的计数初值TH1、TL1等可以设定串口通信的波特率;配置寄存器SCON可以设定串口通信的奇偶校验方式、数据位和停止位等参数。在数据收发方面,本系统通过中断方式接收上层PC机下传的PWM占空比指令,通过判定寄存器RI的状态判断是否为接收中断。串行口控制程序如清单4.5所示。

程序清单4.5 串行口控制

void Init(>

{

TMOD = 0x21。//TMR1 工作于方式2

TH1 = 0xfd。

TL1 = 0xfd。 //波特率为9600

SCON = 0x50。 //方式1,10位可变波特率,允许接收

TR1 = 1。 //启动T1

ES = 1。 //允许串行中断

EA = 1。

}

void Serial_ISR(void> interrupt 4 //串行口中断服务子函数

{

EA = 0。

if(RI>

{

RI = 0。

DutyCycle = SBUF。

}

EA = 1。

}

4.5本章小结

本章首先叙述了本文软件设计的框架,并给出了相应的程序流程图,然后分模块详细阐述了电机控制、LED显示和RS232串口通信等的程序设计思路和

具体实施方案,并给出了对应的程序清单。

第五章系统测试

本章拟在Proteus软件中仿真分析系统的性能。在该软件中,MCS-51单片机的关键字为AT89C51,电机驱动芯片L298N的关键字为L298,编码电机的关键字为MOTOR-ENCODER,4位7段数码管的关键字为7SEG-MPX4-CA,9针串口的搜索关键字为COMPIM,单位按钮的关键字为BUTTON。按照所设计的方案搭建硬件电路如图5-1所示,下面主要分别就电机和串行通信两部分进行性能测试分析。

图5- 1 Proteus硬件连接电路

5.1 电机测试

本文 3.5节已经提及,电机测速过程中的每转脉冲数可在属性窗口设置。在Proteus中双击电机模型即可进入其属性设置界面,在该界面可轻松的设置所仿真电机的额定电压、线圈电阻、线圈电感、空载转速、负载率和每转的脉冲数等参数。在本文的仿真过程中,电机各参数的设定如表5-1所示。

由第4章软件设计可知,外部中断1用于捕获测速模块获得的脉冲,定时器0每10ms产生一次中断,每中断100轮刷新一次电机编码脉冲MotorSpeed 的值,那么MotorSpeed即表征了MCU每秒捕获的脉冲个数。由表5-1可知,电机每转动一圈产生60个脉冲,那么MotorSpeed / 60则为电机每秒转动的圈数,也就是说,MotorSpeed / 60×60 = MotorSpeed为电机每分钟转动的圈速,即MotorSpeed为测速单元得到的电机实际转速。将该值显示到LED数码管上如图5-2所示。图中电机模块下面显示了PWM占空比为90%时,电机的实际转速值为63.2 r/min,而测试单击测得的转速值为65 r/min,光电编码测量值的误差率小于3%。

图5- 2 仿真结果

5.2 串行通信测试

串行通信用于PC机通过下传PWM占空比的值给单片机,以此控制电机的转速。仿真测试串行通信需通过VSPD软件虚拟出一对串口,分别与Proteus 中的串口和PC机绑定。串口绑定需在Keil集成开发环境与Proteus软件中同时进行,具体操作按如下步骤执行。

Step1:打开VSPD软件,新建一对虚拟串口COM2和COM4<由于作者主机已有物理端口COM1和COM3,因此虚拟的串口对为COM2与COM4),本系统将COM2与单片机绑定,COM4与PC机<用串口调试助手代替)绑定,进行单片机与PC机的通信。

Step2:在Keil中将生成的程序与COM2绑定。在Keil集成开发环境的菜单栏单击Debug->Start/Stop Debug Session,然后点确定进入Debug模式,在左下角的COMMAND窗口中输入“MODE COM2 9600,0,8,1[回车]”和“ASSIGN

COM2 SOUT [回车]”,然后退出Debug模式,重新编译链接,生成的

直流电机转速控制

直流电机转速控制公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

直流电机转速控制 课程设计 姓名: 学号: 班级:

目录 1.直流电机转速控制方案设计 (2) 设计要求 (2) 设计框图 (2) 2.直流电机转速控制硬件设计 (3) 主要器件功能 (3) 硬件原理图 (6) 3.直流电机转速控制软件设计 (7) 4.调试 (8) 硬件测试 (8) 软件调试……………………………………………………………(11

1.直流电机转速控制方案设计 设计要求 通过设计了解如何运用电子技术来实现直流电机转速控制,完成直流电机转向和转速的控制,提高分析电路设计、调试方面问题和解决问题的能力。 1、用按键1控制旋转方向,实现正转和反转。 2、电机的设定转速与电机的实际转速在数码管上显示。 3、旋转速度可实时改变。 设计框图 本课题中测量控制电路组成框图如下所示:

图1 2.直流电机转速控制硬件设计 主要器件功能 1、L298N 是专用驱动集成电路,属于H 桥集成电路,与L293D 的差别是其输出电流增大,功率增强。其输出电流为2A,最高电流4A,最高工作电压50V,可以驱动感性负载,如大功率直流电机,步进电机,电磁阀等,特别是其输入端可以与单片机直接相联,从而很方便地受单片机控制。当驱动直流电机时,可以直接控制步进电机,并可以实现电机正转与反转,实现此功能只需改变输入端的逻辑电平。此外可能通过使能端的高低电平的变换,从而使电机通断,来控制电机的转速。 图2 板上的EN1 与EN2 为高电平时有效,这里的电平指的是TTL 电平。EN1 为IN1 和IN2 的使能端,EN2为IN3 和IN4 的使能端。POWER 接直流电源,注意正负,电源正端为VCC,电源地为GND。 2、ZLG7290的核心是一块ZLG7290B芯片,它采用I2C接口,能直接驱动8位共阴式数码管,同时可扫描管理多达64只按键,实现人机对话的功能资源十分丰富。除具有自动消除抖动功能外,它还具有段闪烁、段点亮、段熄灭、功

基于单片机的直流电机控制器的设计

目录 摘要............................................................................................................................................................... I I ABSTRACT ................................................................................................................................................. III 1系统论述 (5) 1.1设计思路 (5) 1.2基本原理 (5) 1.3总体设计框图 (5) 2直流电机单元电路设计与分析 (6) 2.1直流电机驱动模块 (6) 2.2直流电机的中断键盘控制模块 (11) 2.31602LCD液晶显示模块 (13) 3直流电机PWM控制系统的实现 (15) 3.1总电路图 (15) 3.2总电路功能介绍 (16) 3.3直流电机控制程序 (16) 4系统仿真 (23) 5结束语 (26) 参考文献资料 (27)

摘要 本文是对直流电机PWM调速器设计的研究,主要实现对电机的控制。本课程设计主要是实现PWM调速器的正转、反转、加速、减速、停止等操作。并实现电路的仿真。为实现系统的微机控制,在设计中,采用了AT89C51单片机作为整个控制系统的控制电路的核心部分,配以各种显示、驱动模块,实现对电动机转速参数的显示和测量;由命令输入模块、光电隔离模块及H型驱动模块组成。采用带中断的独立式键盘作为命令的输入,单片机在程序控制下,不断给光电隔离电路发送PWM 波形,H型驱动电路完成电机正反转控制.在设计中,采用PWM调速方式,通过改变PWM的占空比从而改变电动机的电枢电压,进而实现对电动机的调速。设计的整个控制系统,在硬件结构上采用了大量的集成电路模块,大大简化了硬件电路,提高了系统的稳定性和可靠性,使整个系统的性能得到提高。 关键词:AT89C51单片机;PWM调速;正反转控制;仿真。

基于单片机对直流电机的控制

基于单片机对直流电机的控制 第十五组 姓名:吴代露20131325010 张鹏飞20131325012 金静丽20131325014 周敏20131325015 胡会华20131325017 顾蓉20131325018 专业:2013级信息工程(系统工程方向) 指导老师:周旺平 2014.12.22

基于单片机对直流电机的控制 内容摘要 电动机作为最主要的动力源,在生产和生活中占有重要地位。电动机的调速控制过去多用模拟法,随着计算机的产生和发展以及新型电力电子功率器件的不断涌现,电动机的控制也发生了深刻的变化。 关键字:电动机飞思卡尔 PWM控制 一、引言 (一)直流电机的定义 直流电机(direct current machine):是指能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。 (二)直流电机的基本结构 由直流电动机和发电机工作原理示意图可以看到,直流电机的结构应由定子和转子两大部分组成。直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,由机座、主磁极换向极、端盖、轴承和电刷装置等组成。运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽,所以通常又称为电枢,由转轴、电枢铁心、电枢绕组、换向器和风扇等组成。 (三)直流电机工作原理

直流电机里边固定有环状永磁体,电流通过转子上的线圈产生安培力,当转子上的线圈与磁场平行时,再继续转受到的磁场方向将改变,因此此时转子末端的电刷跟转换片交替接触,从而线圈上的电流方向也改变,产生的洛伦兹力方向不变,所以电机能保持一个方向转动。直流发电机的工作原理就是把电枢线圈中感应的交变电动势,靠换向器配合电刷的换向作用,使之从电刷端引出时变为直流电动势的原理。感应电动势的方向按右手定则确定(磁感线指向手心,大拇指指向导体运动方向,其他四指的指向就是导体中感应电动势的方向)。导体受力的方向用左手定则确定。这一对电磁力形成了作用于电枢一个力矩,这个力矩在旋转电机里称为电磁转矩,转矩的方向是逆时针方向,企图使电枢逆时针方向转动。如果此电磁转矩能够克服电枢上的阻转矩(例如由摩擦引起的阻转矩以及其它负载转矩),电枢就能按逆时针方向旋转起来。 (四)直流电机的分类 直流电动机按结构及工作原理可划分:无刷直流电动机和有刷直流电动机。(1)无刷直流电动机:无刷直流电动机是将普通直流电动机的定子与转子进行了互换。其转子为永久磁铁产生气隙磁通:定子为电枢,由多相绕组组成。在结构上,它与永磁同步电动机类似。无刷直流电动机定子的结构与普通的同步电动机或感应电动机相同.在铁芯中嵌入多相绕组(三相、四相、五相不等).绕组可接成星形或三角形,并分别与逆变器的各功率管相连,以便进行合理换相。由于电动机本体为永磁电机,所以习惯上把无刷直流电动机也叫做永磁无刷直流电动机。 (2)有刷直流电动机:又可分为永磁直流电动机和电磁直流电动机。 永磁直流电动机划分:稀土永磁直流电动机、铁氧体永磁直流电动机和铝镍钴永磁直流电动机。稀土永磁直流电动机:体积小且性能更好,但价格昂贵,主要用于航天、计算机、井下仪器等;铁氧体永磁直流电动机:由铁氧体材料制成的磁极体,廉价,且性能良好,广泛用于家用电器、汽车、玩具、电动工具等领域;铝镍钴永磁直流电动机:需要消耗大量的贵重金属、价格较高,但对高温的适应性好,用于环境温度较高或对电动机的温度稳定性要求较高的场合。 电磁直流电动机划分:串励直流电动机、并励直流电动机、他励直流电动机和复励直流电动机。 (1)串励直流电动机:电流串联,分流,励磁绕组是和电枢串联的,直流串励电

51单片机PWM控制直流电机正反转

//程序说明:使用内部时//PWM0=P3^7PWM1=P3^5 PWM2=P2^0 PWM3=P2^4 #include #define uchar unsigned char #define uint unsigned int sbit PWM0=P3^7; sbit PWM1=P3^5; sbit PWM2=P1^2; sbit PWM3=P1^3; uint i,j; void PWM_init() { CMOD=0x00;//PCA计数脉冲选择内部时钟fosc/12(0x02:fosc/2) CL=0x00;//PCA赋初值 CH=0x00; CR=1; //开始计数 } void zheng(uchar ZKB) { CCAP0L=255*(40-ZKB)/100;//占空比设置 CCAP0H=255*(40-ZKB)/100;//CL由ff-00溢出时,CCAP0H的值装入CCAP0L CCAPM0=0x42;// 8位PWM模式 CCAP1L=255*(40-0)/100;//占空比设置 CCAP1H=255*(40-0)/100;//CL由ff-00溢出时,CCAP0H的值装入CCAP0L CCAPM1=0x42;// 8位PWM模式 CR=1; //开始计数 } void fan(uchar ZKB) { CCAP0L=255*(40-0)/100;//占空比设置 CCAP0H=255*(40-0)/100;//CL由ff-00溢出时,CCAP0H的值装入CCAP0L CCAPM0=0x42;// 8位PWM模式 CCAP1L=255*(40-ZKB)/100;//占空比设置 CCAP1H=255*(40-ZKB)/100;//CL由ff-00溢出时,CCAP0H的值装入CCAP0L CCAPM1=0x42;// 8位PWM模式 CR=1; //开始计数 } void Delay(uint t) //延时函数

基于单片机的电机转速测量系统

兰州交通大学 毕业设计文献综述 题目:基于单片机的电机转速测量系统Title:Motor speed measuring system based on single chip microcomputer 姓名:韦宝芸

学号:3 班级:机设1202班 摘要 本文首先叙述了单片机测量转速的系统构成及转速测量的几种常用方法,分析了相应方法在测量上的特点、误差和计算。其次,针对特定的应用环境,设计出一种基于 80C51单片机的全数字式测速系统,详细阐述了系统的工作原理,指出产生误差的可能原因,并给出了具体解决的方法;根据系统要求编制了源程序,分析其工作流程。最后,对构建的系统利用仿真机进行调试,对测量指标进行了分析、比较并提出改进方案。 关键词:单片机、转速、测量精度 Abstract

This paper first discussed some ways for rotary speed measure. It analyzed characters and errors of these ways. Second, it designed full digital measure system based on a Single-Chip Microprocessor(80C51) responding to special application, stated the working theory of the system and the methods to solve the errors, writed the working programmes by A51 assemble language. Finally, this system implementation was confirmed by using of Keil-51 simulator. The characters on the error margin and accuracy was summarized. Keywords : Single-Chip Microprocessor、rotary speed 、measureprecision Keil-51

直流电机控制设计(1)

河南科技大学 课程设计说明书 课程名称现代电子系统课程设计题目_直流电机控制设计 学院__电子信息工程学院____班级_________ 学生姓名__________ 指导教师__________

日期_______ 课程设计任务书 (指导教师填写) 课程设计名称现代电子系统课程设计学生姓名专业班级 设计题目直流电机控制设计 一、课程设计目的 学习直流电机PWM的FPGA控制; 掌握PWM控制的工作原理; 掌握GW48_SOPC实验箱的使用方法; 了解基于FPGA的电子系统的设计方法。 二、设计内容、技术条件和要求 利用PWM控制技术实现直流电机的速度控制。 (1)基本要求: a.速度调节:4档,数字显示其档位。 b.能控制电机的旋转方向。 c.通过红外光电电路测得电机的转速,设计频率计用4位10进制显示电机的转速。 (2)发挥部分 a.设计“去抖动”电路,实现直流电机转速的精确测量。 b.修改设计,实现直流电机的闭环控制,旋转速度可设置。 c.其它。 三、时间进度安排 布置课题和讲解:1天 查阅资料、设计:4天 实验:3天 撰写报告:2天 四、主要参考文献 何小艇《电子系统设计》浙江大学出版社2008.1 潘松黄继业《EDA技术实用教程》科学出版社2006.10 齐晶晶《现代电子系统设计》实验指导书电工电子实验教学中心2009.8

指导教师签字:2010年12月30日 摘要 利用FPGA可编程芯片及VHDL语言实现了对直编程实现流电机PWM控制器的设计,对直流电机速度进行控制。介绍了用VHDL语言编程实现直流电机PWM控制器的PWM的产生模块、转向调节模块、转速控制模块、去抖动电路模块、电机转速显示等模块功能。 采用CPU控制产生PWM信号,一般的PWM信号是通过模拟比较器产生的,比较器的一端按给定的参考电压,另一端接周期性线性增加的锯齿波电压。当锯齿波电压小于参考电压时输出低电平,当锯齿波电压大于参考电压时输出高电平。改变参考电压就可以改变PWM波形中高电平的宽度。若用单片机产生PWM信号波形,需要通过D/A转换器产生锯齿波电压和设置参考电压,通过外接模拟比较器输出PWM波形,因此外围电路比较复杂。 FPGA中的数字PWM控制与一般的模拟PWM控制不同,用FPGA产生PWM波形,只需FPGA 内部资源就可以实现。用数字比较器代替模拟比较器,数字比较器的一端接设定值计数器输出,另一端接线性递增计数器输出。当线性计数器的计数值小于设定值时输出低电平,当计数值大于设定值时输出高电平。与模拟控制相比,省去了外接的D/A转换器和模拟比较器,FPGA外部连线很少,电路更加简单,便于控制。脉宽调制式细粉驱动电路的关键是脉宽调制,转速的波动随着PWM脉宽细分数的增大而减小。 直流电机控制电路主要由三部分组成: (1)FPGA中PWM脉宽调制信号产生电路。 (2)FPGA中的工作/停止控制和正/反转方向控制电路。 (3)由功率放大电路和H桥组成的正反转功率驱动电路 关键词

单片机PWM控制直流电机的速度

用单片机控制直流电机的速度 直流调速器就是调节直流电动机速度的设备,上端和交流电源连接,下端和直流电动机连接,直流调速器将交流电转化成两路输出直流电源,一路输入给直流电机砺磁(定子),一路输入给直流电机电枢(转子),直流调速器通过控制电枢直流电压来调节直流电动机转速。同时直流电动机给调速器一个反馈电流,调速器根据反馈电流来判断直流电机的转速情况,必要时修正电枢电压输出,以此来再次调节电机的转速。 直流电机的调速方案一般有下列3种方式: ?1、改变电枢电压; ?2、改变激磁绕组电压; ?3、改变电枢回路电阻。 使用单片机来控制直流电机的变速,一般采用调节电枢电压的方式,通过单片机控制PWM1,PWM2,产生可变的脉冲,这样电机上的电压也为宽度可变的脉冲电压。根据公式 U=aVCC 其中:U为电枢电压;a为脉冲的占空比(0

电动机的电枢电压受单片机输出脉冲控制,实现了利用脉冲宽度调制技术(PWM)进行直流电机的变速。 因为在H桥电路中,只有PWM1与PWM2电平互为相反时电机才能驱动,也就是PWM1与PWM2同为高电平或同为低电平时,都不能工作,所以上图中的实际脉冲宽度为B, 我们把PWM波的周期定为1ms,占空比分100级可调(每级级差为10%),这样定时器T0每0.01ms产生一次定时中断,每100次后进入下一个PWM波的周期。上图中,占空比是60%,即输出脉冲的为0.6ms,断开脉冲为0.4ms,这样电枢电压为5*60%=3V。 我们讨论的是可以正转反转的,如果只按一个方向转,我们就只要把PWM1置为高电平或低电平,只改变另一个PWM2电平的脉冲变化即可,,如下图(Q4导通,Q3闭合,电机只能顺时针调整转动速度)

51单片机直流无刷电机控制

基于MCS-51单片机控制直流无刷电动机 学号:3100501044 班级:电气1002 :王辉军

摘要 直流无刷电机是同步电机的一种,由电动机本体、位置传感器和电子开关线路三部分组成。其定子绕组一般制成多相(三相、四相、五相不等),转子由永久磁钢按一定极对数(2p=2,4,…)组成。电机转子的转速受电机定子旋转磁场的速度及转子极数(P)影响: N=120.f / P。在转子极数固定情况下,改变定子旋转磁场的频率就可以改变转子的转速。直流无刷电机即是将同步电机加上电子式控制(驱动器),控制定子旋转磁场的频率并将电机转子的转速回授至控制中心反复校正,以期达到接近直流电机特性的方式。也就是说直流无刷电机能够在额定负载围当负载变化时仍可以控制电机转子维持一定的转速。 MCS-51单片机是美国英特尔公司生产的一系列单片机的总称,是一种集成电路芯片,采用超大规模技术把具有数据处理能力的微处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、输入输出接口电路、定时计算器、串行通信口、脉宽调制电路、A/D转换器等电路集成到一块半导体硅片上,这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。 本论文将介绍基于MCS-51单片机控制直流无刷电动机的设计,它可以实现控制直流无刷电动机的启动、停止、急停、正反转、加减速等功能。 关键词:单片机,直流无刷电动机,控制系统

直流无刷电动机是在直流电动机的基础之上发展而来的,它是步进电动机的一种,继承了直流电动机的启动转矩大、调速性能好等特点克服了需要换向器的缺点在交通工具、家用电器及中小功率工业市场占有重要的地位。直流无刷电动机不仅在电动自行车、电动摩托车、电动汽车上有着广泛的应用,而且在新一代的空调机、洗衣机、电冰箱、吸尘器,空气净化器等家用电器中也有逐步采用的趋势,尤其是随着微电子技术的发展,直流无刷电动机逐渐占有原来异步电动机变频调速的领域,这就使得直流无刷电动机的应用围越来越广。 本设计就是基于MCS-51系列单片机控制直流无刷电动机,利用所学的知识实现单片机控制直流无刷电动机的启动、停止、急停、正反转,加减速等控制,并对直流无刷电动机运行状态进行监视和报警。详细介绍单片机的种类、结构、功能、适用领域和发展历史、未来前景及其直流无刷电动机的工作原理、控制结构等容,既着重单片机的基本知识、功能原理的深入阐述,又理论联系实际详细剖析单片机控制直流无刷电动机的过程。 1.直流无刷电动机的基本组成 直流无刷电动机是在直流电动机的基础上发展而来的,直流无刷电动机继承了直流电动机启动转矩大、调速性能好的优点,克服了直流电动机需要换向器的缺点,在交通工具、家用电器等生活的方方方面面占有重要的地位。 由于直流无刷电动机既具有交流电动机的结构简单、运行可靠、维护方便等一系列优点,又具备直流电动机的运行效率高、无励磁损耗以及调速性能好等诸多优点,故在当今国民经济各领域应用日益普及。 直流无刷电动机主要由电动机本体、位置传感器和电子开关线路三部分组成。其定子绕组一般制成多相(三相、四相、五相不等),转子由永久磁钢按一定极对数(2p=2,4,…)组成。图3-1所示为三相两极直流无刷电机结构。 三相定子绕组分别与电子开关线路中相应的功率开关器件联结,A、B、

基于单片机的直流电机转速测量与显示(DOC)

目录 绪论 (2) 第1章参数计算与设备选型 (3) 1.1控制芯片 (3) 1.2测速发电机 (4) 1.3模数转化器件——ADC0809 (6) 第2章系统设计 (9) 2.1 系统方框图 (9) 2.2 硬件设计 (10) 2.2.1 直流测速发电机 (10) 2.2.2 ADC0809与单片机连接 (10) 2.2.3 数码管 (11) 2.2.4 综合接线图 (11) 2.3 软件设计 (12) 2.3.1 程序设计思路说明 (12) 2.3.2 总程序控制流程图 (13) 2.3.3 ADC0809工作流程图及程序 (14) 2.3.4显示部分工作流程图及程序 (15) 第3章结论 (18) 参考文献 (19)

绪论 在现代工业自动化高度发展的时期,几乎所有的工业设备都离不开电机,形形色色的电机在不同领域发挥着很重要的作用。与之而来的问题是,如何更好地控制电机,对于不同的场合,对电机的控制要求是不同的,但大部分都会涉及到直流电机的转速测量,从而利用转速来实施对直流电机的控制。 直流电机转速作为直流电机的一项重要技术指标,在各个应用场合都有重要的研究价值,例如在发动机,电动机,机床主轴等旋转设备的试验运转和控制中,常需要分时或连续测量,显示其转速及瞬时速度等,转速是其他大部分技术参数的计算来源,因此,准确测量直流电动机的转速具有重要的研究意义和理论价值。 目前,对直流电动机的速度检测方法很多,从整体上可分为模拟检测和数字检测方法。 模拟检测:即利用测速电机作为发电机,通过检测反电势E的大小和极性可得到转速N和电机转向,采用这种方法直接可以得到转速N和输出电压的特性曲线,直观,但也有很多不足,比如在高速和低速情况下实际输出偏离理想特性。 数字检测技术:即通过分析数字信号产生的一系列脉冲间接获取电机转速。如光电旋转编码器是将检测圆盘划分为等距的三个同心圆,最外环和次外环分别用等距的黑白条纹分开,且最外环和次外环的缝隙位置相位差为90度,用于判断电机的转速,最内环只有一个黑条纹,用作定位脉冲或者是复位脉冲,利用光电编码器输出的脉冲可以计算转速,具体的又可分为M法,T法和M\T法。 此外,市场上已经有了技术成熟的电机测速装置,如利用霍尔元件设计制作的直流电机测速仪等,凭借其精度高,稳定性好等优势占有重要的一席之地。 而本次微机控制原理课程设计的任务是直流电机速度的测量与显示。主要要求是通过测速直流发电机作为传感器,检测直流电机的转速,并输出与转速相关的电压,通过ADC0809芯片将测速发电机输出电压转换成电压的数字信号。控制芯片采用AT89C51将采集转换后的数字信号进行处理,得到转速,并通过四位数码管予以显示。整体上能够完成从转速检测到数据处理到显示的一整套功能。

基于单片机的直流电机

摘要 本课程主要是设计一个基于单片机的直流电机 PWM 控制系统。PWM 控制提高了调速范围,提高了调速精度,改善了快速性能、功率和功率因数。系统在设计中被控对象采用 5V 的直流电机,以 MCS-51 单片机为控制核心,采用 LCD12864 液晶作为显示元件,进行软硬件的设计。硬件电路由protel 设计制作,主要设计了液晶显示电路、键盘控制电路、复位电路、测速电路和驱动电路。软件设计在 Keil 开发平台用 C 语言编写,程序采用模块化设计方案,包括液初始化程序、晶显示程序、键盘控制程序。 本系统 PWM 控制直流电机采用调压调速的方法,整体设计包括软件和硬件两个部分。通过利用单片机产生 PWM 控制信号控制直流电机,详细介绍脉宽调制 ( PWM) 控制原理,直流电机的工作原理和数学模型以及用 H型桥电路基本原理设计的驱动电路。通过硬件电路的模拟情况,说明系统运行正常,各个功能模块实现是可行的,控制精度比较高,能够满足系统的基本要求。 关键词:单片机;PWM;直流电机;L298N;LCD12864;

目录 一、设计任务 (1) 二、设计方案 (1) 三、系统硬件设计 (3) 1、 STC52最小系统 (3) 2、电机模块 (8) 3、 L298N模块 (9) 4、测速模块 (11) 5、测压模块 (12) 6、液晶模块 (13) 7、按键模块 (15) 8、灯光信号模块 (16) 四、系统软件设计 (17) 1、软件流程图 (17) 2、 PWM程序设计 (18) 3、测压程序设计 (18) 4、测速程序设计 (19) 5、液晶驱动程序设计 (20) 6、菜单程序设计 (21) 7、按键程序设计 (23) 8、电机反电动势系数计算程序 (24) 9、电机力矩系数计算程序 (25) 10、逼近算法控制程序 (25) 11、比例控制程序 (25) 12、 PID控制程序 (26) 五、直流调速系统动态数学模型的建立 (28) 六、调速数据 (32) 1、比例调速数据 (32) 2、 PID调速数据 (33) 3、逼近算法调速数据 (34) 4、反电动势系数和电机力矩系数数据 (34) 七、心得体会 (34) 参考文献 (36) 附录一硬件原理图 (37) 附录二硬件PCB图 (38) 附录三程序清单 (39)

直流电机速度控制模型建立

十二、直流电动机速度控制模型建立 如图所示,a R 和a L 分别为电枢回路电阻和电感,a J 为机械旋转部分的转动惯量,f 为旋转部分的粘性摩擦系统,)(t u a 为电枢电压,)(t n 为电动机转动速度,)(t i a 为电枢回路电流。 通过调节电枢电压)(t u a ,控制电动机的转动速度)(t n 。电动机负载变化为电动机转动速度的干扰因素,用负载力矩)(t M d 表示。 根据直流电动机的工作原理及基尔霍夫定律,直流电动机有四大平衡方程: (1)电枢回路电压平衡方程 )()()(t u E t i R dt t di L a a a a a a =++ 式中,a E 为电动机的反电势。 (2)电磁转矩方程 )()(t ia K t M a w = 式中,)(t M w 为电枢电流产生的电磁转矩,a K 为电动机转矩系数。 (3)转矩平衡方程 )()()()(t M t M t fn dt t dn J d w a +=+ 式中,a J 为机械旋转部分的转动惯量,f 为旋转部分的粘性摩擦系数。 (4)由磁感应关系,得 )(t n K E b a = 根据上述的四个平衡方程式,可建立起系统的输出量、干扰量与输入量之间的传递函数 b a a a a a a a a a K K f R s J R f L s L J K s U s N ++++=)()()(2 a a a a d R s L K s U s M +-=)()( 建立起直流电动机的结构图为

直流电动机参数为 Ω =0.2a R , 015.0,015.0,5.0===b a a K K H L ,Nms f 2.0=,202.0m kg J a ?=。 得到系统的阶跃响应曲线为

基于51单片机控制直流电机的设计

可以实现的功能是: 按下左转键则开始向左转动 按下右转键则向右转动 按下停止键则开始逐渐停止转动 按下调速键一次则会加速一档 按下调速键二次则会加速二档 按下调速键三次则会加速三档 按下调速键四次则会加速四档 按下调速键五次则会回到最初速度重新记档位 设计思路: 直流电机只要能提供一定的直流就可以转动,改变电压极性可以改变转动方向,可以通过给直流电机提供脉冲信号来驱动它,脉冲信号的占空比可以影响到直流电机的平均速度,因此可以通过调整占空比从而能实现调速的目的。直流电机的驱动电路要有过流保护作用,图中的二极管就直到这个作用,另外电机的驱动电流是比较大的所以需要用三极管来放大电流。程序的关键就是如何实现占空比的调整,这个可以通过对51单片机定时器重装初值进行改变,从而改变时间。用51实现PWM信号的输出,相对麻烦点,要是AVR就可以方便地实现PWM信号,由见51单片机的局限性与AVR单片机的优势。 原理图

详细程序: #include #define uchar unsigned char #define uint unsigned int sbit PW1=P2^0 ; sbit PW2=P2^1 ; //控制电机的两个输入 sbit accelerate=P2^2 ; //调速按键 sbit stop=P2^3 ; //停止按键 sbit left=P2^4 ; //左转按键 sbit right=P2^5 ; //右转按键 #define right_turn PW1=0;PW2=1 //顺时针转动 #define left_turn PW1=1;PW2=0 //逆向转动 #define end_turn PW1=1;PW2=1 //停转 uint t0=25000,t1=25000; //初始时占空比为50% uint a=25000; // 设置定时器装载初值 25ms 设定频率为20Hz uchar flag=1; //此标志用于选择不同的装载初值 uchar dflag; //左右转标志 uchar count; //用来标志速度档位 void keyscan(); //键盘扫描 void delay(uchar z); void time_init(); //定时器的初始化 void adjust_speed(); //通过调整占空比来调整速度 void main()

基于单片机STC89C52的直流电机PWM调速控制系统

第一章:前言 Pwm 电机调速原理对于电机的转速调整,我们是采用脉宽调制(PWM)办法,控制电机的时候,电源并非连续地向电机供电,而是在一个特定的频率下以方波脉冲的形式提供电能。不同占空比的方波信号能对电机起到调速作用,这是因为电机实际上是一个大电感,它有阻碍输入电流和电压突变的能力,因此脉冲输入信号被平均分配到作用时间上,这样,改变在始能端EN1 和EN2 上输入方波的占空比就能改变加在电机两端的电压大小,从而改变了转速。此电路中用微处理机来实现脉宽调制,通常的方法有两种:(1)用软件方式来实现,即通过执行软件延时循环程序交替改变端口某个二进制位输出逻辑状态来产生脉宽调制信号,设置不同的延时时间得到不同的占空比。 (2)硬件实验自动产生PWM 信号,不占用CPU 处理的时间。这就要用到STC89C52的在PWM模式下的计数器1,具体内容可参考 相关书籍。 51 单片机PWM 程序 产生两个PWM,要求两个PWM 波形占空都为80/256,两个波形之间要错开,不能同时为高电平!高电平之间相差48/256, PWM 这个功能在PIC 单片机上就有,但是如果你就要用51 单片机的

话,也是可以的,但是比较的麻烦.可以用定时器T0来控制频率,定时器T1 来控制占空比:大致的的编程思路是这样的:T0 定时器中断是让一个I0口输出高电平,在这个定时器T0的中断当中起动定时器T1,而这个T1 是让IO 口输出低电平,这样改变定时器T0 的初值就可以改变频率,改变定时器T1 的初值就可以改变占空比。 前言: 直流电机的定义:将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。 近年来,随着科技的进步,直流电机得到了越来越广泛的应用,直流具有优良的调速特性,调速平滑,方便,调速范围广,过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速起动、制动和反转,需要满足生产过程自动化系统各种不同的特殊要求,从而对直流电机提出了较高的要求,改变电枢回路电阻调速、改变电压调速等技术已远远不能满足现代科技的要求,这是通过 PWM 方式控制直流电机调速的方法就应运而生。 采取传统的调速系统主要有以下的缺陷:模拟电路容易随时间飘移,会产生一些不必要的热损耗,以及对噪声敏感等。而用PWM 技术后,避免上述的缺点,实现了数字式控制模拟信号,可以大幅度减低成本和功耗。并且 PWM 调速系统开关频率较高,仅靠电枢电感的滤波作用就可以获得平滑的直流电流,低速特性好;同时,开关频率高,快响应特性好,动态抗干扰能力强,可获很宽的频带;开关元件只需工作在开关状态,主电路损耗小,装置的效率高,具有节约空间、经济好等特点。 随着我国经济和文化事业的发展,在很多场合,都要求有直流电机 PWM 调速系统来进行调速,诸如汽车行业中的各种风扇、刮水器、喷水泵、熄火器、反视镜、宾馆中的自动门、自动门锁、自动窗帘、自动给水系统、柔巾机、导弹、火炮、人造卫星、宇宙飞船、舰艇、飞机、坦克、火箭、雷达、战车等场合。 本设计任务: 任务: 单片机为控制核心的直流电机PWM 调速控制系统 设计的主要内容以及技术参数: 功能主要包括: 1) 直流电机的正转; 2) 直流电机的反转; 3) 直流电机的加速; 4) 直流电机的减速; 5) 直流电机的转速在数码管上显示; 6) 直流电机的启动; 7) 直流电机的停止; 第二章:总体设计方案

直流电机转速测量与控制

苏州大学 城市轨道交通学院

课题名称:直流电机转速控制与测量学院:城市轨道交通学院 班级:10级通信工程 学号:45 姓名:袁圆 其他成员:李吟乔王佳毓苏朗

直流电机转速测量与控制 一、设计要求 1) 电机转速比例测量,并数码管显示; 2) 电机转速由按键设定,步长为1rad/min。 二、直流电机转速测量与PWM控制的基本原理: 直流电机的工作原理为:直流电机的磁极N,S间装着一个可以转动的铁磁圆柱体,圆柱体的表面固定着线圈abcd。当线圈流过电流的时候,线圈受到电磁力的作用,产生旋转。 根据左手定则可知,当流过线圈中电流改变方向时,线圈的受力方向也将改变,因此通过改变线圈电流的方向实现改变电机的方向。 由于方波的有效电压跟电压幅值和占空比有关,因此我们通过单片机的控制电路改变占空比,从而改变有效电压,以此控制电机的转速。即采用PWM(脉宽调制)方法实现调速。 三、设计方案 程序应用模块化进行设计,主要有初始化模块、显示模块、读键模块、数制转换模块、双字节除法模块、中断模块和控制调节模块。 初始化模块:8155工作方式、T0和T1工作方式、标志位状态、所用单元初值、中断设置以及初始显示等。 显示模块:设定值和实测值的数值与字符动态显示。 读键模块:从I/O口依据某位数码管亮时读入小按键是否有效,然后根据四个小键盘的不同功能进行相应的处理,只要设定值一改变立刻显示。加1键和减1键要有连加连减功能。 数制转换模块:将二进制转换为十进制。 外部中断模块:将转1圈的时间通过双字节除法程序求出即时转速。 定时中断模块:PWM输出波形形成。 控制调节模块:通过设定值和实测值的比较来改变脉冲波的占空比,该数据的调节分为简单比例调节PP和比例积分调节PI。调节公式分别为: YK=YK1+KP*EK

基于单片机的直流电机控制设计性实验报告

设计题目:直流电机控制电路设计 一设计目得 1掌握单片机用PWM实现直流电机调整得基本方法,掌握直流电机得驱动原理。 2学习模拟控制直流电机正转、反转、加速、减速得实现方法. 二设计要求 用已学得知识配合51单片机设计一个可以正转、反转或变速运动得直流电机控制电路,并用示波器观察其模拟变化状况。 三设计思路及原理 利用单片机对PWM信号得软件实现方法.MCS一51系列典型产品8051具有两个定时计数器。因为PWM信号软件实现得核心就是单片机内部得定时器,所以通过控制定时计数器初值,从而可以实现从8051得任意输出口输出不同占空比得脉冲波形。从而实现对直流电动机得转速控制。 .AT89C51得P1、0—P1、2控制直流电机得快、慢、转向,低电平有效.P3、0为PWM波输出,P3、1为转向控制输出,P3、2为蜂鸣器。PWM控制DC电机转速,晶振为12M,利用定时器控制产生占空比可变得PWM波,按K1键,PWM值增加,则占空比增加,电机转快,按K2键,PWM值减少,则占空比减小,电机转慢,当PWM值增加到最大值255或者最小值1时,蜂鸣器将报警 四实验器材 DVCC试验箱导线若电源等器件

PROTUES仿真软件KRIL软件 五实验流程与程序 #include 〈 reg51、h > sbitK1 =P1^0;增加键 sbit K2 =P1^1 ; 减少键 sbit K3 =P1^2;转向选择键 sbit PWMUOT =P3^0; PWM波输出?? sbitturn_around =P3^1 ;?转向控制输出 sbit BEEP =P3^2 ;蜂鸣器 unsigned int PWM; void Beep(void); void delay(unsigned int n); void main(void) { TMOD=0x11;//设置T0、T1为方式1,(16位定时器) TH0=0 ; 65536us延时常数{t=(65536—TH)/fose/12} ?TL0=0; TH1=PWM; //脉宽调节,高8位 ? TL1=0; EA=1;? //开总中断 ET0=1; //开T0中断? ET1=1;??//开T1中断

直流电动机速度控制设计概述

第一章:概述 直流电动机是人类发明最早和应用的一种电机。与交流电机相比,直流电机因结构复、维护苦难,价格昂贵等缺点制约了它的发展,应用不及交流电机广泛。但由于直流电动机具有优良的启动、调速和制动性能,因此在工业领域中仍占有一席之地。 转速调节的主要技术指标是:调速范围D和负载变化时对转速的影响即静差率,以及调速时的允许负载性质等(静差率就是表示在负载变化时拖动装置转速降落的程度。静差率越小,表示转速稳定性越好,对生产机械,如机床加工的零件,其加工的精度及表面光洁度就越高)。而直流电动机的突出优点是恰好是能在很大的范围内具有平滑,平稳的调速性能,过载能力较强,热动和制动转矩较大。 因此,从可靠性来看,直流电动机仍有一定的优势。 调节直流电动机转速的方法有三种: (1)电枢回路串电阻; (2)改变励磁电流; (3)改变电枢回路的电源电压; 而本文从另一个角度来阐述直流电机的速度控制,即利用自动控制中的反馈来调节电机的平稳运行以达到各项性能指标。

第二章:系统数学模型 本系统的简化方框图为: 其对应的原理图为: 控制系统的被控对象为电动机(带负载),系统的输出量是转速w ,参数亮是Ui 。控制系统由给定电位器、运算放大器1(含比较作用)、运算放大器2(含RC 校正网络)、功率放大器、测速发电机、减速器等部分组成。 工作原理为:当负载角速度ω和电动机角速度m ω一致的时候,反馈电压为0,电机处于平衡状态即电动机运行稳定。当负载的角速度收到干扰的作用时,ω和m ω失谐,控制系 统通过反馈电压的作用来改变m ω直到达到新的一致使系统恢复稳定,电机稳定运行。

2.1直流电动机的数学模型: 直流电动机的数学模型。直流电动机可以在较宽的速度范围和负载范围内得到连续和准确地控制,因此在控制工程中应用非常广泛。直流电动机产生的力矩与磁通和电枢电流成正比,通过改变电枢电流或改变激磁电流都可以对电流电机的力矩和转速进行控制。图2.2是一个电枢控制式直流电动机的原理图。在这种控制方式中,激磁电流恒定,控制电压加在电枢上,这是一种普遍采用的控制方式。 设为输入的控制电压 电枢电流 为电机产生的主动力矩 为电机轴的角速度 为电机的电感 为电枢导数的电阻 为电枢转动中产生的反电势 为电机和负载的转动惯量 根据电路的克希霍夫定理 (2-1) 电机的主动转矩 (2-2) 其中为电机的力矩常数。 反电势 (2-3) 式中为电机反电势比例系数 力矩平衡方程

基于单片机的直流电机控制(正反转、开关控制)

基于单片机的直流电机控制(正反转,开关控制)原理图如下: 程序如下: /*用电机来代表门的转动情况*/ #include //定义变量 sbit kaimen=P0^0; sbit zanting=P0^1; sbit fanxiang=P0^2; sbit P2_0=P2^0; sbit P2_1=P2^1; bit Flag = 1;//定义电机正反向标志 //函数声明 void motor_turn(void); //正反向控制 void Timer0_init(void); //定义定时器0初始化 /******************************延时处理***************************/ void Delay(unsigned int z)

{ unsigned int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /***************************************************************/ void Timer0_int(void) interrupt 1 using 1//定时器0中断处理主要用来处理换方向的时候 { TR0 = 0; TL0=(65536-50000)/ 256; //定时50ms TH0=(65536-50000)% 256; TR0 = 1; if(Flag == 1)//代表改变方向 { P2_0 = 0; P2_1 = 1; } else //方向不变 { P2_1 = 0; P2_0 = 1; } } /****************开始转动:人满时候开始转动**************/ void motor_start(void) { if(kaimen==1) { //Delay(10); if(kaimen==1) { P2_0 = 0; P2_1 = 1; } } } /***************有人但是人未满时或者有夹到人的时候暂停*************/ void motor_pause(void) { if(zanting==1) { Delay(10);

一个基于51单片机控制直流电机的设计

今天做的一个基于51单片机控制直流电机的设计 2010-09-12 18:47 可以实现的功能是: 按下左转键则开始向左转动 按下右转键则向右转动 按下停止键则开始逐渐停止转动 按下调速键一次则会加速一档 按下调速键二次则会加速二档 按下调速键三次则会加速三档 按下调速键四次则会加速四档 按下调速键五次则会回到最初速度重新记档位 设计思路: 直流电机只要能提供一定的直流就可以转动,改变电压极性可以改变转动方向,可以通过给直流电机提供脉冲信号来驱动它,脉冲信号的占空比可以影响到直流电机的平均速度,因此可以通过调整占空比从而能实现调速的目的。直流电机的驱动电路要有过流保护作用,图中的二极管就直到这个作用,另外电机的驱动电流是比较大的所以需要用三极管来放大电流。程序的关键就是如何实现占空比的调整,这个可以通过对51单片机定时器重装初值进行改变,从而改变时间。用51实现PWM信号的输出,相对麻烦点,要是AVR就可以方便地实现PWM 信号,由见51单片机的局限性与AVR单片机的优势。 原理图

详细程序: #include #define uchar unsigned char #define uint unsigned int sbit PW1=P2^0 ; sbit PW2=P2^1 ; //控制电机的两个输入 sbit accelerate=P2^2 ; //调速按键 sbit stop=P2^3 ; //停止按键 sbit left=P2^4 ; //左转按键 sbit right=P2^5 ; //右转按键 #define right_turn PW1=0;PW2=1 //顺时针转动 #define left_turn PW1=1;PW2=0 //逆向转动 #define end_turn PW1=1;PW2=1 //停转 uint t0=25000,t1=25000; //初始时占空比为50% uint a=25000; // 设置定时器装载初值 25ms 设定频率为20Hz uchar flag=1; //此标志用于选择不同的装载初值 uchar dflag; //左右转标志 uchar count; //用来标志速度档位 void keyscan(); //键盘扫描 void delay(uchar z); void time_init(); //定时器的初始化 void adjust_speed(); //通过调整占空比来调整速度 void main() {

相关主题
文本预览
相关文档 最新文档