直流电机转速测量仪.docx

上传人:b****4 文档编号:5100593 上传时间:2022-12-13 格式:DOCX 页数:25 大小:742.83KB
下载 相关 举报
直流电机转速测量仪.docx_第1页
第1页 / 共25页
直流电机转速测量仪.docx_第2页
第2页 / 共25页
直流电机转速测量仪.docx_第3页
第3页 / 共25页
直流电机转速测量仪.docx_第4页
第4页 / 共25页
直流电机转速测量仪.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

直流电机转速测量仪.docx

《直流电机转速测量仪.docx》由会员分享,可在线阅读,更多相关《直流电机转速测量仪.docx(25页珍藏版)》请在冰豆网上搜索。

直流电机转速测量仪.docx

直流电机转速测量仪

 

智能仪表设计基础课程设计

 

课题名称直流电机转速测量仪

学生姓名

所在班级

指导教师

 

扬州大学能源与动力工程学院

二〇一年九月

总目录

 

第一部分:

任务书

第二部分:

课程设计报告

 

 

第一部分

 

《智能仪表课程设计》课程设计任务书

一、课题名称

温度测量仪设计

二、设计内容及设计要求

利用Pt100热电阻作为测温元件,设计一个温度测量仪,具有下面的功能:

1.测量范围为0℃~500℃,精度误差小于1℃。

2.LCD液晶显示当前温度值和温度动态曲线

3.通过继电器通断控制温度范围45℃~85℃

4.具有RS232通信接口。

三、时间安排

第一周:

星期一~星期二:

布置任务,熟悉资料,确定仪表的功能要求、性能指标。

熟悉实验板原理图和印刷板图。

星期三~星期五:

进行仪表的方案选择,确定主要芯片、工作方式、输入输出信号的接口方式、键盘和显示方式、以及通信方式。

进行硬件设计和元器件选择,画出硬件原理图。

第二周:

星期一~星期五:

根据硬件原理图,焊接硬件电路;测试硬件电路的功能;软件设计,包括软件需求说明、软件结构框图、主要软件功能模块的流程图;编写程序。

第三周:

星期一~星期三:

调试程序,联调软件和硬件。

星期四~星期五:

写课程设计报告。

四、应交成果

应交成果包括:

⏹纸质课程设计报告和电子文档;

⏹硬件原理图的Protel99se文件,程序;

⏹可以演示的硬件和软件成果。

五、课程报告内容

课程设计报告应包括下列部分:

⏹课程设计任务书

⏹仪表的功能要求、性能指标要求。

⏹方案选择:

提出多种方案,进行方案比较,说明选定方案的理由,描述硬件和软件的功能分工。

⏹硬件设计:

包括硬件结构框图、原理图及其各个主要环节的工作原理说明,元器件选择的计算方法或者理由,利用提供的实验板焊接元器件。

⏹软件设计:

首先提出软件的功能需求,然后进行软件的结构设计,再画出主要功能模块的软件框图。

⏹程序编写和调试。

⏹设计小结。

报告中硬件原理于用Protel99se画出,软件框图和程序流程图用MicrosoftVisio画出。

 

第二部分

 

目录

第一章设计内容及要求1

1.1课题名称1

1.2仪表的功能要求及性能指标1

2.1测速装置的选择2

2.2显示方案的选择2

2.3总体方案的设计2

第三章硬件设计3

3.1硬件结构框图3

3.2电路各主要环节工作原理3

3.2.1直流电机驱动电路3

3.2.2光电码盘测速电路4

3.2.3程序下载模块6

3.2.4单片机控制系统7

3.2.5电机工作状态转换电路7

3.2.6LCD1602显示电路8

3.2.7直流电机转速测量仪硬件总原理图,如图3-139

第四章软件设计9

4.1软件实现的功能9

4.2各环节程序框图10

4.2.1主程序框图,如图4-110

4.2.2中断服务程序框图,如图4-211

4.2.3加速、减速程序框图,如图4-3和4-412

第五章程序编写13

第六章运行与调试14

6.1串口程序下载及显示电路调试14

6.2借助函数发生器调试基本程序14

6.3电机与光电码盘测速电路调试14

6.4直流电机驱动电路调试14

6.5电机工作状态转换按键调试15

第七章设计小结16

附录一成果实物照片展示19

第一章设计内容及要求

1.1课题名称

1.2仪表的功能要求及性能指标

1.测量范围为0℃~500℃,精度误差小于1℃。

2.LCD液晶显示

3.通过继电器通断控制

4.具有RS232通信接口。

 

第三章硬件设计

3.1硬件结构框图

直流电机转速测量仪原理框图主要由电机、直流电机驱动模块、光电码盘、单片机、LCD1602显示器、状态开关等组成;通过传感器光电码盘将转速转换为相应的频率量后送入单片机计数,然后经过处理后,由单片机输出信号lcd1602显示。

硬件原理框图,如图3-1

图3-1电机转速测量仪硬件框图

3.2电路各主要环节工作原理

3.2.1直流电机驱动电路

(1)L298N构成的电路原理图,如图3-2

图3-2直流电机驱动电路原理图

(2)直流电机驱动模块L298N管脚及功能,如图3-3

图3-3L298N管脚图

L298N是ST公司生产的一种高电压、大电流电机驱动芯片。

该芯片采用15脚封装。

主要特点是:

工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。

内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作,有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。

使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机M1和M2。

工作原理:

引脚ENABLEA、ENABLEB可用于输入PWM脉宽调制信号对电机M1与M2进行调速控制。

输入信号端INPUT1接高电平,输入端INPUT2接低电平时,电机M1正转;如果信号端INPUT1接低电平,INPUT2接高电平,电机M1反转。

控制另一台电机是同样的方式,输入信号端INPUT3接高电平,输入端INPUT4接低电平,电机M2正转,反之则反转。

(3)直流电机驱动电路工作原理

直流电机驱动芯片L298N受单片机的控制,当IN1与IN2分别接收到单片机发出的高电平和低电平信号,直流电机对应接到OUT1与OUT2引脚上,ENA持续接收到高电平“1”时,直流电机全速正转。

而当单片机向ENA发出脉宽调制信号PWM给L298N的ENA引脚时,直流电机的转速便实现可调。

另外,电路中四只续流二极管起到保护作用。

3.2.2光电码盘测速电路

(1)光电码盘测速电路原理图,如图3-4

图3-4光电码盘测速接线图

(2)光电码盘传感器管脚及功能,如图3-5

图3-5光电码盘管脚

1、具有信号输出指示。

2、单路信号输出。

3、输出有效信号为低电平。

4、灵敏度不可调。

5、可用于工件计数、电机测速。

6、电路板输出开关量。

图3-6光电码盘电路原理图

原理图说明:

如图所示,传感器由两个光电二极管(一个负责发送一个负责接收)、电压比较电路等简单原件共同组成。

当码盘栅格挡住两个二极管之间的光时,比较器3端电压为高,则1端输出电压低,既传感器输出OUT为高电平(此时二极管亮),当栅格没有阻挡光时,3端电压低,从而1端出低即此时OUT出高(此时二极管灭)。

就这样一直输出为方波,方波的频率反映了电机的转速。

3.2.3程序下载模块

(1)MAX232芯片构成的程序下载电路原理图,如图3-7

图3-7MAX232程序下载电路图

(2)MAX232芯片管脚及说明,如图3-8

图3-8MAX232芯片

(3)程序下载电路工作原理

由于电脑串口RS232电平是-10V—10V,而一般的单片机应用系统的信号电压是TTL电平为0—+5V,MAX232芯片就是用来进行电平转换的,该器件包含两个驱动器、两个接收器和一个电压发生器电路,用来提供TIA/EIA-232-F电平。

MAX232符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-VTTL/CMOS电平,每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。

MAX232的R1OUT、T1IN分别与单片机的RXD、TXD相连,然后MAX232的T1OUT、R1IN分别与上位机PC的TXD、RXD相连,这样单片机就可以通过MAX232实现与上位机PC机的数据传输。

3.2.4单片机控制系统

(1)单片机控制系统原理图,如图3-9

图3-9单片机控制系统原理图

(2)单片机控制系统组成及功能

直流电机转速测量仪的单片机系统由石英晶体和微调电容构成的时钟振荡电路、复位电路及单片机构成。

实现与上位机的通信(程序下载)功能,对霍尔开关转换的数字信号进行运算和处理,并控制ZLG7290八位数码管显示转速。

3.2.5电机工作状态转换电路

(1)电机工作状态转换控制电路图,如图3-10

图3-10电机工作状态转换控制电路

(2)电路原理说明

设定两个按键SW1、SW2,分别定义为加速按键和减速按键,即当SW1被按下时,电机按照固定的比例加速,而当SW2被按下时,电机按照固定的比例减速。

软件上,通过编程由单片机控制直流电机驱动电路输出的PWM信号来实现这一功能。

3.2.6LCD1602显示电路

(1)显示电路原理图,如图3-11

图3-11显示电路图

(2)显示电路说明

因为之前就已经熟悉LCD1602的使用,因此使用起来十分方便快捷,通过P0口将数据直接传送到显示器即可。

显示位数自定,还可以显示英文字符(如:

Thevelocity)很人性化。

 

3.2.7直流电机转速测量仪硬件总原理图,如图3-13

图3-13总原理图

第四章软件设计

4.1软件实现的功能

软件部分主要是对光电传感器输出的由电机转动产生的脉冲信号转换而来的数字电平信号进行运算和处理,并控制LCD1602电路实时地显示电机转速。

另外,控制单片机实时查询两个功能按键的状态,根据按键的状态来改变直流电机驱动芯片L298N输出的PWM信号,从而控制电机工作状态的转换,即适当地加速、减速,并且由显示电路显示加速或减速后的电机转速值。

4.2各环节程序框图

4.2.1主程序框图,如图4-1

图4-1主程序框图

说明:

主程序包括LCD1602初始化程序、控制L298N输出PWM信号初始化程序、定时/计数器中断初始化程序。

并且在主程序里通过对各设定标志位进行判断从而实现对加速子程序、减速子程序和显示子程序的调用,进而实现加速、减速和显示功能。

4.2.2中断服务程序框图,如图4-2

图4-2中断服务程序

说明:

中断服务程序首先对定时/计数器的初值重新赋值,晶振为12MHz,初值设定为64536,时间为1ms。

利用在主程序中已经定义的标志位ct来作为取计数器值显示的标志,而用与ct同步变化的ctt标志位来作为判断PWMH输出变化的标志。

从而实现在一定占空比的PWM脉冲信号情况下对电机转速实现实时测量。

4.2.3加速、减速程序框图,如图4-3和4-4

图4-3加速程序框图

图4-4减速程序框图

说明:

当加速键或减速键按下时,主程序调用加速或减速程序,PWM初值设定为20,PWMH初值设定为10,而PWM值不变,改变的是PWMH值,按键每被按下一次占空比改变1/20。

第五章程序编写

程序编写是一个逻辑思维展开的过程,也是将程序框图逐步细化的过程,要求编写者思维缜密。

程序框图的绘制是程序编写的重要基础。

如果在编写一个系统的程序之前,编写者能认真思考、绘制程序框图,而且程序框图几经修改完善没有逻辑错误,那接下来的程序编写便很轻松的多,这正是老师反复强调的“程序好编,框图难画,框图完成,程序的编写定会清清楚楚”,而且如果程序运行出错,单从程序中检查错误很难,而回头看程序框图便很容易查出逻辑错误,可见程序框图的重要性。

因此,直流电机转速测量仪的程序编写也是在画好程序框图的前提下进行的。

在绘制程序框图时注意主程序、中断服务程序、子程序调用的逻辑顺序,并反复检查是否存在逻辑、时序等问题,然后再对每一部分进行细节分析,继而再进行逻辑检查,看各部分变量的定义是否有冲突等,最后再利用C语言编写程序,反复调试运行,首先排查语法错误,再总体分析逻辑时序方面的问题。

直流电机转速测量仪的程序参见附录二。

C语言具有一下一些优点:

   ①简洁紧凑、灵活方便

   ②运算符丰富

   ③数据结构丰富

   ④C是结构式语言

   ⑤C语法限制不太严格、程序设计自由度大

   ⑥C语言允许直接访问物理地址,可以直接对硬件进行操作

   ⑦C语言程序生成代码质量高,程序执行效率高

   ⑧C语言适用范围大,可移植性好

 

 

第六章运行与调试

6.1串口程序下载及显示电路调试

(1)调试过程

由于单片机定时器通信限制,故没有实现单片机的实时通信功能,但依然将MAX232通信口焊接在电路板上以供下载程序使用。

显示电路的调试很重要,由于之前在自己的开发板上以经进行过系统整体的测试,因而很幸运的是显示电路没有什么问题。

焊接成功。

(2)调试的结果与遇到的问题

LCD1602显示正常。

6.2借助函数发生器调试基本程序

(1)调试过程

根据软件的设计,单片机可对外部输入脉冲进行计数,从而通过简单的运算得出频率,基于这个原理,我们将函数信号发生器输出方波接到计数端,观察LCD1602显示器显示的频率是否和函数发生器的频率一致。

(2)调试结果与遇到的问题

刚开始,显示器有显示,示数基本和函数发生器显示一致,但波动和误差较大,这儿是我们遇到的一个难题,思考了很长时间,反复检查程序,但没有什么结果。

于是我想到了唯一可能的问题就是出现在计时上,最后通过修改计时初值,逐渐消除误差,最终和函数发生器显示一致。

6.3电机与光电码盘测速电路调试

(1)调试过程

测速电路连接好后,将信号输出端接入示波器观察波形。

(2)调试结果与遇到的问题

连接好测试电路后,观察示波器,输出为标准的方波,并且电机的转速不同,输出的波形的频率也不同,说明电机与光电码盘测速电路没有问题。

6.4直流电机驱动电路调试

(1)调试过程

将单片机上定义的直流电机驱动引脚如P1.0、P1.1、P1.2分别与芯片L298N的使能端ENA、IN1、IN2相连,将电机的正负极接至L298N的OUT1与OUT2处,检测电路的接线不用改变,将事先编写好的程序下载到单片机里,观察电机转动情况及显示情况。

(2)调试结果与遇到的问题

电机正常转动,但是数码显示数值为1500r/min-1560r/min,与不加直流电机驱动电路时候数据有出入,说明电机的驱动电源小于5V,经分析,原因是直流电机驱动电路产生少部分压降。

6.5电机工作状态转换按键调试

(1)调试过程

将两个带有上拉电阻的按键的引出脚接到单片机的P2.0与P2.1。

把编写好的程序下载到单片机里,已知程序中两个按键的定义,一次按下其中一个按键,观察电机转动情况以及数码管显示数值的变化。

(2)调试结果与遇到的问题

当加速键或减速键按下又松开后,电机的转速并没有明显变化,因此在程序中改了PWM信号的占空比,反复调试,电机的转速在按键按下后有了明显变化,说明按键电路没有问题,虽然按键有抖动现象,但是不影响基本功能,因此只要对程序进行修改并完善就行了。

其中,在测量显示时得到,当占空比为50%的时候,电机转速约为960r/min,而每按下按键一次,电机转速增加或减少约120r/min。

本阶段调试用程序参见附录二。

 

第七章设计小结

参考文献

【1】张毅刚主编.《单片机原理及应用》(第一版).高教出版社.2003

【2】程德福林君主编.《智能仪器》(第二版).机械工业出版社.2009

【3】杜宇人主编.《现代电子测量技术》(第一版).机械工业出版社.2009

【4】侯殿有主编.《单片机C语言程序设计》.人民邮电出版社.2010

 

附录一成果实物照片展示

附录二源程序

1、最后成果展示程序

#include"reg52.h"

#defineucharunsignedchar

#defineuintunsignedint

uinttm1,tm2,temp,flg,ct,ctt,PWMM,PWM,a,b,c,d,e;

sbitENA=P2^2;

sbitIN1=P1^2;

sbitIN2=P1^1;

sbitalarm=P1^3;

sbitJIAK=P2^0;

sbitJIANK=P2^1;

//sbitdula=P2^6;

//sbitwela=P2^7;

sbitgui=P2^5;

/***************1602显示程序*****************/

ucharcodetable[]="Thevelocity:

";

uchardatatable1[]="r/min";

sbitlcden=P2^7;//P3^4;//

sbitlcdrs=P2^6;//P3^5;//

ucharnum;

voiddelay1(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

voidwrite_com(ucharcom)

{

lcdrs=0;

P0=com;

delay1(5);

lcden=1;

delay1(5);

lcden=0;

}

voidwrite_data(uchardate)

{

lcdrs=1;

P0=date;

delay1(5);

lcden=1;

delay1(5);

lcden=0;

}

voidinit()//初始化函数

{

lcden=0;

write_com(0x38);

write_com(0x0c);

write_com(0x06);

write_com(0x01);

write_com(0x80);

for(num=0;num<16;num++)

{

write_data(table[num]);

delay1(10);

}

write_com(0x80+0x49);

for(num=9;num<14;num++)

{

write_data(table1[num]);

delay1(10);

}

}

voiddisplay(uinttemp)

{

a=temp/10000;//将计数值每一位取出

b=temp/1000%10;

c=temp/100%10;

d=temp/10%10;

e=temp%10;

table1[3]=a+'0';//送给数组待显示

table1[4]=b+'0';

table1[5]=c+'0';

table1[6]=d+'0';

table1[7]=e+'0';

write_com(0x80+0x40);

for(num=0;num<9;num++)

{

write_data(table1[num]);

delay1(5);

}

}

/*********************1602显示程序**********************/

voidJiasucheck()//加速函数

{

while(JIAK==0);//等键松开再动作

if(PWMM!

=PWM)//如果占空比没有到最大值,可以加速

{

PWMM++;

if(PWMM==PWM)//如果占空比变为最大

{

//TR0=0;//定时器停

ENA=1;//最高速转动

}

}

}

voidJiansucheck()//减速函数

{

while(JIANK==0);//等键松开再动作

if(PWMM!

=0)//如果占空比没有到最小值,可以减速

{

PWMM--;

if(PWMM==0)//如果占空比变为最小

{

//TR0=0;//定时器停

ENA=0;//电源停

}

}

}

/*voidDelay2(unsignedintt)

{

unsignedinti;

for(i=1;i<=t;i++);

}*/

/****************中断服务程序******************/

voidT0_time()interrupt1

{

TH0=0xFC;

TL0=0x18;

ct=ct+1;

ctt=ctt+1;

if(ct!

=1000)

{

if(ctt

{

ENA=1;

}

elseif(ctt

=PWMH)&&(ctt==PWM))

{

//ctt=0;

ENA=0;

}

else

{ctt=0;}

}

else{

ct=0;

TR1=0;//关闭计数器T1

tm2=TH1;

tm1=TL1;//取计数器计数值

temp=tm2*256+tm1;//将计数器值的高位和低位整合

temp=temp*15;

TH1=0x00;

TL1=0x00;//给计数器T1重新置0,为下一次计数做准备

TR1=1;//再次启动T1计数

flg=1;//显示标志位置1

if(ctt

{

ENA=1;

}

elseif(ctt

=PWMH)&&(ctt==PWM))

{

//ctt=0;

ENA=0;

}

else{ctt=0;}

}

}

main()

{//dula=0;

//wela=0;

gui=0;

init();

ENA=0;

IN1=1;

IN2=0;

PWMM=5;

PWM=10;//PWM周期初始化

ctt=0;

//中断初始化

TMOD=0x51;

TH0=0xFC;

TL0=0x18;

TL1=0x00;

TH1=0x00;//计数器清零

EA=1;

ET0=1;

ET1=0;

TR0=1;

TR1=1;

ct=0;//计时一秒次数初始化

flg=0;

while

(1)

{

if(JIAK==0)

{delay1(100);

if(JIAK==0)

Jiasucheck();

}

if(JIANK==0)

{delay1(100);

if(JIANK==0)

Jiansucheck();

}

if(flg==1)

{

flg=0;

display(temp);//调用显示程序

if(temp>=8000)

{alarm=0;}

else{alarm=1;}

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1