毕业设计基于霍尔传感器的电机转速测量系统软件设计.docx

上传人:b****5 文档编号:12053069 上传时间:2023-04-16 格式:DOCX 页数:37 大小:306.73KB
下载 相关 举报
毕业设计基于霍尔传感器的电机转速测量系统软件设计.docx_第1页
第1页 / 共37页
毕业设计基于霍尔传感器的电机转速测量系统软件设计.docx_第2页
第2页 / 共37页
毕业设计基于霍尔传感器的电机转速测量系统软件设计.docx_第3页
第3页 / 共37页
毕业设计基于霍尔传感器的电机转速测量系统软件设计.docx_第4页
第4页 / 共37页
毕业设计基于霍尔传感器的电机转速测量系统软件设计.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

毕业设计基于霍尔传感器的电机转速测量系统软件设计.docx

《毕业设计基于霍尔传感器的电机转速测量系统软件设计.docx》由会员分享,可在线阅读,更多相关《毕业设计基于霍尔传感器的电机转速测量系统软件设计.docx(37页珍藏版)》请在冰豆网上搜索。

毕业设计基于霍尔传感器的电机转速测量系统软件设计.docx

毕业设计基于霍尔传感器的电机转速测量系统软件设计

基于霍尔传感器的电机转速测量系统

软件设计

摘要

在生产过程中,电机的应用十分广泛,随着生产的不断发展,对电机转速的测量就显得十分必要,同时对电机转速的测量提出了更高的要求。

本文设计了一种以51单片机作为主控制器,使用霍尔传感器进行测量的直流电机转速测量系统。

本系统采用集成霍尔传感器敏感速率信号,具有频率响应快,抗干扰能力强等特点。

文章介绍了霍尔传感器的工作原理,阐述了霍尔传感器测速系统的工作过程,利用脉冲计数法实现了对转速的测量,通过LCD直观地显示电机的转速值。

结合硬件电路设计,采用模块化方法进行了软件设计。

编制了电机转速的测量设计了测量模块、转速模块、报警模块、显示模块等的C51程序,并通过PROTEUSE软件进行了仿真。

仿真结果表明所设计的软件程序是正确的。

关键词:

霍尔传感器;单片机;电机转速测量;液晶显示。

 

SoftwareDesignofMotorSpeedMeasurementSystemBased

onHallSensor

Abstract

Intheproductionprocess,themotorsarewidelyusedasproductioncontinuestodevelop,measuringthemotorspeedbecomesnecessary,whilemotorspeedmeasurementputforwardhigherrequirements.

Thismeasurementsystemisadesignofamicrocomputer51astheprimarycontroller,theHallsensorasasensortomeasuretheDCmotorspeed.ThesystemusesanintegratedHallsensorsensitivityrateofthesignalwithafrequencyoffastresponse,anti-interferenceabilityandsoon.

TheworkingprincipleoftheHallsensorwasintroducedinthispaper.Theworkingprocesswasdescribed.Itisusedpulse-countingmethodtoachievethemeasurementofspeed,andtodisplaymotorspeedvaluesthroughanintuitiveLCD.Combinationofhardwarecircuitdesign,softwaresweredesignedbyamodularapproachusingC51program,suchasthemotorspeedmeasurementmodule,alarmmodule,displaymoduleetc.,AlltheseprogramsweresimulatedthroughPROTEUSE.Simulationresultsshowthatthedesignedsoftwareprogramsarecorrect.

Keywords:

Hallsensor;microcontroller;SpeedMeasurement;LCD.

 

1绪论

在实践中,经常会遇到各种需要测量转速的场合。

例如在发动机、电动机、卷扬机、机床主轴等旋转设备的试验、运转和控制中,常需要测量和显示其转速。

测量转速的方法分为模拟式和数字式两种。

模拟式采用测速发电机为检测元件,得到的信号是模拟量。

数字式通常采用光电编码器、圆光栅、霍尔元件等为检测元件,得到的信号是脉冲信号。

随着微型计算机的广泛应用,特别是高性能价格比的单片机的出现,转速测量普遍采用以单片机为核心的数字式测量方法,智能化微电脑代替了一般机械式或模拟式结构。

1.1立题的目的和意义

霍尔传感器是利用霍尔效应实现磁电转换的一种传感器,它具有灵敏度高、线性度好、稳定性高、体积小和耐高温等特点,在机车控制系统中占有非常重要的地位[1]。

测速装置在控制系统中占有非常重要的地位,对测速装置的要求是分辨能力强、高精度和尽可能短的检测时间。

在此主要介绍应用霍尔传感器通过测量磁场强度,来得到稳定的脉冲方波信号,实现电机转速的测量转速是电动机极为重要的一个状态参数,在很多运动系统的测控中,都需要对电机的转速进行测量,速度测量的精度直接影响系统的控制情况,它是关系测控效果的一个重要因素。

不论是直流调速系统还是交流调速系统,只有转速的高精度检测才能得到高精度的控制系统。

1.2应用与发展前景

随着微型计算机可靠性提高和价格的下降,用单片机测量电机转速已日趋普遍。

我们知道,欲提高测量精度,必须先测出准确的转速,而原先在可控硅调速电路中采用的测速发电机方式已不能满足要求,必须采用数字测速的方法[2]。

转速的测量方法很多,根据脉冲计数来实现转速测量的方法主要有M法(测频法)、T法(测周期法)和MPT法(频率周期法),该系统采用了M法(测频法)。

转速检测方式采用霍尔脉冲法测量转速有两种简单的方式。

本文采用频率法,检测的是输入脉冲数,这种方式又称频率法。

它测出一定时间内输入的脉冲的个数。

在控制系统中占有非常重要的地位。

对测速装置的要求是分辨能力强、高精度和尽可能短的检测时间。

所设计的基于霍尔元件的脉冲发生器要求成本低,构造简单,性能好。

在电气控制系统中存在着较为恶劣的电磁环境,因此要求产品本身要具有较强的抗干扰能力。

由于需要采用霍尔传感器的应用领域,如汽车、电机、手机和电脑都已经采用了该器件,而且这些市场在未来几年的增长较为稳定,而其他一些新的应用市场又不足以与上述几个市场相比,因此霍尔传感器在全球总的市场容量是较为稳定的,每年的增长率保持在5%到10%之间。

因为各种应用电机的部件、节气门位置的检测、各种阀体位置的检测都会用到霍尔传感器。

而且,在中国市场中,国外厂商为了降低成本,陆续将零部件拿到中国进行设计和生产,这也进一步提升了中国市场霍尔传感器的应用量。

随着它在消费电子市场上的应用越来越广,如何控制功耗和成本将是厂商面临的挑战。

而且,它还面临生产测试技术方面的挑战[3]。

1.3设计任务与要求

1.3.1设计任务

根据学校毕业设计的要求,设计一个功能满足设计要求、工作稳定、以单片机为核心的基于霍尔传感器的电机转速测量系统,能够实现在电机工作时转速的测量,并在发生故障时能及时的发出报警信号。

本设计包括完整的硬件设计和相应的软件设计。

1.3.2设计要求

首先选定传感器,霍尔传感器具有灵敏、可靠、体积小巧、无触点、无磨损、使用寿命长、功耗低等优点,综合了电机转速测量系统的要求。

其次设计一个单片机小系统,掌握单片机接口电路的设计技巧,学会利用单片机的定时器和中断系统对脉冲信号进行测量或计数。

再次实时测量显示并有报警功能,实时测量根据脉冲计数来实现转速测量的方法。

要求霍尔传感器转速为0~5000r/min。

1.4小结

本章主要对本设计的立题目的及意义进行了介绍并且对设计的要求进行了总结。

 

2课题方案设计

2.1系统总体设计要求

如果把霍尔传感器按预定位置有规律地布置在轨道上,当永磁体经过它时,可以从测量电路上测得脉冲信号。

根据脉冲信号的分布可以测出电机速度。

2.2系统模块结构论证

2.2.1霍尔测速模块论证与选择

方案一:

采用霍尔元件传感器即霍尔片;霍尔片可分为贴片型和直插型。

由于贴片型不常用,因此选择直插型。

选型号为A3144的霍尔片作为霍尔测速模块的核心,该霍尔片体积小,安装灵活,可用于测速,且与普通的磁钢片配套使用,价格一般为2.5~3元。

方案二:

采用霍尔传感器;选型号为CHV-25P/10的霍尔传感器,其额定电压为10v,输出信号5v/25mA,电源为12~15v。

体积大,价格一般为40~120元之间不等。

从性价比方面综合考虑因此选择方案一。

2.2.2计数器模块论证与选择

可以采用片外计数器和片内计数器两个方案。

片外计数器的方案是指采用8253等片外的专用计数芯片进行脉冲计数,单片机控制8253的技术过程,并在技术完毕后读取计数值。

片内计数方案是指采用单片机的内部计数器完成对脉冲的计数过程。

使用片内的计数器的优点在于降低单片机系统的成本。

每到一个脉冲将会产生一个T1的计数,在T0产生的100ms中断完成后,T1的中断溢出次数就是所需要计的脉冲数。

特点在于:

使用了内部的T1作为外部脉冲的计数器,并且,为了避免计数器的溢出,将T1的初值设为0。

2.2.3显示模块论证与选择

方案一:

采用8段LED数码管作为显示模块核心。

数码管显示器件相对便宜,但是耗能大、编写程序相对麻烦,工作量大。

方案二:

采用LCD液晶显示器作为显示模块核心。

LCD显示器工作原理简单,编程方便,节能环保。

因此选择方案二。

2.2.4报警模块论证与选择

方案一:

采用蜂鸣器与发光二极管作为声光报警主要器件。

该方案不论在硬件和焊接方面还是在编写软件方面都简单方便,而且成本低廉。

方案二:

采用语音播报系统作为声光报警的核心。

该方案更具人性化、智能化,但是就该设计要求而言,方案过于复杂,相对成本过高,工作量偏大。

因此选择方案一。

2.2.5电源模块论证与选择

方案一:

采用交流220V/50Hz电源转换为直流5V电源作为电源模块。

该方案实施简单,电路搭建方便,可作为单片机开发常备电源使用。

方案二:

采用干电池串并联达到5V作为电源模块。

该方案实施简单,无需搭建电路,但相对该方案不够稳定,电池耗电快,带负载后压降过高,可能无法使系统稳定持续运行。

方案三:

采用可充电锂电池结合稳压模块作为电源模块。

该方案简单易行,而且相对稳定、误差小,但该方案相对价格过高,针对该设计要求性价比低。

因此选择方案一。

2.2.6单片机模块论证与选择

方案一:

选用P89C51的单片机速度极快、功耗低、体积小、资源丰富,有各种不同的规格,最快的达100MPS,引脚还可编程确定功能

方案二:

PhilipsP89C51RD2有4个PDA,属于兼容版。

方案比较:

因为项目的目标是测速系统的应用,所以我还是选用了方案一中51系列的单片机,因为51的架构十分典型。

选择方案一中51系列单片机我认为主要考虑以下方面:

1.价格便宜;2.开发手段便宜;3.自己动手焊接相对容易。

2.3转速测量方案论证

转速的测量方法很多,根据脉冲计数来实现转速测量的方法主要有M法(测频法)、T法(测周期法)和MPT法(频率周期法),该系统采用了M法(测频法)。

由于转速是以单位时间内转数来衡量,在变换过程中多数是有规律的重复运动[4]。

2.3.1方案一电机轴一侧贴磁片

使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。

如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。

在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试[5]。

2.3.2方案二电机转轴加测速转盘

传感器采用霍尔器件将电机的转速转化为脉冲信号,处理器采用89C205l单片机.计数器采用单片机片内汁数器完成对脉冲的计数,显示器采用字符型液晶显示器1602进行显示。

系统原理框图如图3-1所示。

系统工作过程:

测量转速的霍尔传感器与机轴相连接,机轴每转一周,产生一定的脉冲个数,霍尔器件电路部分输出,成为转速计数器的计数脉冲。

控制计数时间,即可实现计数器的计数值对应机轴的转速值。

单片机CPU将数据处理后,通过LCD显示出来。

转速的测量转速传感器由磁钢、霍尔元件组成。

将一非磁性圆盘固定装在电机转轴上,圆盘边缘等距离用环氧树脂粘贴块状磁钢,磁钢采用永久磁[6]。

图2-1霍尔传感器检测信号图

2.3.3方案对比

方案一与方案二综合进行对比,发现方案一最少只需一粒磁片即可达到所需要求,简单方便,经济实惠,并易于操作。

因此经比较选择方案一。

2.4小结

本章通过总体设计进行对方案选择的最终确定,研究了霍尔测速、计数器、显示、报警、电源、单片机等各部分模块的可行性方案。

介绍了系统各模块结构并进行方案的比较、论证和最终的选择。

3系统总体设计

3.1总体硬件设计

基于霍尔传感器的速度测量系统工作过程是:

测量转速的霍尔传感器和机轴同轴连接,机轴每转一周,产生一定量的脉冲个数,由霍尔器件电路部分输出。

经光电耦合后,成为转速计数器的计数脉冲。

同时传感器电路输出幅度为12v的脉冲经光电耦合后降为5v,保持同89C51逻辑电平相一致。

控制计数时间,即可实现计数器的计数值对应机轴的转速值。

CPU将该值数据处理后,在LCD上显示出来。

一旦超速,CPU通过喇叭和指示灯发出声、光报警信号[7]。

3.1.1硬件原理图

以单片机AT89C5l为控制核心,用霍尔集成传感器作为测量转速的检测元件,最后用字符型液晶显示器1602(HD44780控制)显示的小型直流电动机转速的方法,是数字式测量方法,智能化微电脑代替了传统的机械式或模拟式结构。

系统硬件原理图如图3-1所示[8]。

图3-1硬件原理图

3.1.2硬件电路设计总图

在原理图基础上对各部分进行了详细的设计,硬件电路图如图3-2所示。

图3-2硬件电路图

3.2系统子模块简介

本文介绍一种用AT89C51单片机测量小型电动机转速的方法。

系统以单片机AT89C5l为控制核心.用霍尔集成传感器作为测量小型直流电机转速的检测元件,经过单片机数据处理,用字符型液晶显示器1602显示小型直流电机的转速。

另外系统还可完成对电机的开关控制、系统工作时间、当前时间及电机状态的显示。

单片机转速测量系统。

组成单片机转速测量系统的有传感器、处理器、计数器和显示器四个部分组成。

3.2.1传感器部分

主要分为两个部分。

第一部分是利用霍尔器件将电机转速转化为脉冲信号;第二个部分是使用光耦,将传感器输出的信号和单片机的计数电路两个部分隔开,减少计数的干扰。

用于测量的A44E集成霍尔开关,磁钢用直径D=6.004mm,长度为L=3.032mm的钕铁硼磁钢。

电源用直流,霍尔开关输出由四位半直流数字电压表测量,磁感应强度B用95A型集成霍尔元件测量[9]。

图3-3霍尔片管脚管脚接线

3.2.2计数器

片内计数方案是指采用单片机的内部计数器完成对脉冲的计数过程。

3.2.3处理器

处理器是单片机,采用的是89C51单片机。

3.2.4LCD显示部分

显示部分有两个功能,在正常的情况下,通过LCD显示当前的频率数值,当电机的转速超出一定的范围后,通过灯光和蜂鸣器进行报警。

3.2.5外接报警部分

在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警。

用I/O定时翻转电平来产生驱动波形的方式会比较麻烦一点,必须利用定时器来做定时,通过定时翻转电平产生符合蜂鸣器要求的频率的波形,这个波形就可以用来驱动蜂鸣器了。

比如为2500Hz的蜂鸣器的驱动,可以知道周期为400μs,这样只需要驱动蜂鸣器的I/O口每200μs翻转一次电平就可以产生一个频率为2500Hz,占空比为1/2duty的方波,再通过三极管放大就可以驱动这个蜂鸣器了。

由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放电流就可以了[10]。

4软件设计

4.1程序设计步骤

第一步分析问题,明确任务要求,对于复杂的问题,还要讲要解决的问题抽象成数学模型,即用数学表达式来描述。

第二步确定算法,即根据实际问题和指令系统的特点确定完成这一任务须经历的步骤。

第三步根据所选择的算法,确定内存单元的分配:

使用那些寄存器:

程序运行中的中间数据及结果存放在那些单元,以利于提高程序的效率和运行速度:

然后制定出解决问题的步骤和顺序,画出程序的流程图。

第四步根据流程图,编写源程序。

第五步上机对原程序进行编译、调试。

4.2程序流程图

电机转速测量需要经过的4个基本步骤:

1是控制方式;2是确定计数方式;3是信号输入方式;4是计数值的读取;通过89C51,单片机完成对电机转速脉冲计数的控制,读取寄存器完成转速频率的确定。

而SGN电机脉冲信号连到

引脚。

计数次数为3次,将3次结果取平均,从而提高计数的稳定性和精确性。

其测量过程是测量转速的霍尔传感器和电机机轴同轴连接,机轴每转一周,产生一定量的脉冲个数,由霍尔器件电路输出。

经过电耦合器后,即经过隔离整形电路后,成为转数计数器的计数脉冲。

同时霍尔传感器电路输出幅度为12V的脉冲经光电耦合后降为5V,保持同单片机AT89C51逻辑电平相一致,控制计数时间,即可实现计数器的计数值对应机轴的转速值。

主CPU将该值数据处理后,在LCD液晶显示器上显示出来[11]。

本系统采用89C51中的

中断对转速脉冲计数。

定时器T0工作于定时方式,工作于方式1。

每到1s读一次外部中断

计数值,此值即为脉冲信号的频率,根据式(4-1)可计算出电机的转速。

当直流电机通过传动部分带圆盘旋转时,霍尔传感器根据圆盘上得磁片获得一系列脉冲信号。

这些脉冲信号通过单片机系统定时/计数器

计数,定时器T0定时。

定时器T0完成100次溢出中断的时间T除以测得的脉冲数m,经过单位换算,就可以算得直流电机旋转的速度。

直流电机转速计算公式:

n=60·m/(N1·T·N)(rpm)(4-1)

其中:

n为直流电机转速,N为栅格数,N1为T0中断次数,m为

在规定时间内测得的脉冲数,T为定时器T0定时溢出时间[12]。

4.2.1主程序流程图

主程序工作过程如下。

先进行初始化设置各定时器初值,然后判断是否启动系统进行测量。

如果是,就启动系统运行。

如果不是就等待启动。

启动系统后,霍尔传感器检测脉冲到来后,启动外部中断,每来一个脉冲中断一次,记录脉冲个数。

同时启动T0定时器工作,每1秒定时中断一次,读取记录的脉冲个数,即电机转速。

连续采样三次,取平均值记为一次转速值。

再进行数值的判断,若数值高于5000rpm则报警并返回初始化阶段,否则就进行正常速度液晶显示。

 

图4-1主流程图

 

4.2.2中断服务流程图

在处于中断服务程序阶段,首先进行关中断设置。

其次进行对

位进行的脉冲个数计数的数值读取。

再次对

、T0进行赋初值并且进行关中断设置。

最后进行中断返回。

一、外部计数中断

图4-2外部中断流程图

二、定时器中断

图4-3T0中断流程图

4.3软件程序设计

4.3.1主程序设计

主程序在对定时器、计数器、堆栈等进行初始化后即判断标志位是否为1,如果为1,说明要求对数据进行计算处理,首先将标志位清零,以保证下次能正常判断,然后进入数据处理程序,由于这里的闸门时间为1s,而显示要求为转/分,因此,要将测到的数据进行转换,转换的方法是将测得的数据乘以60,但由于转轴上安装有4只磁钢,每旋转一周可以得到4个脉冲,因此,要将测得的数据除以4,所以综合起来,将测得的数据乘以60/4=15即可得到每分钟的转速。

计算得到的结果是二进制的整数,要将数据送往显示缓冲区需要将该数转化为BCD码。

运算得到的是压缩BCD码,需要将其转换为非压缩BCD码,从标号CBCD开始的一段程序即作了这样的处理[13]。

定时器T0用作4ms定时发生器,在定时中断程序中进行数码管的动态扫描,同时产生1s的闸门信号。

1s闸门信号的产生是通过一个计数器Count,每次中断时间为4ms,每计250次即为1s,到了1s后,即清除计数器Count,然后关闭作为计数器用的INT0,读出TH0、TL0中的数值,分别送入SpCount和SpCount+1单元,将T0中的值清空,置标志位为1,要求主程序进行速度值的计算。

这里还有一个细节,用作1s闸门信号产生的Count每次中断都会加1,而INT0却有一个周期是被关闭的,因此,计数值是251而不是250。

系统采用外部晶振,系统时钟SYSCLK等于18432000,T0定时1ms,初始化时TH0=(-SY-SCLK/1000)》8;TL0=-(SYSCLK/1000)。

等待1s到,输出转速脉冲个数N,计算电机转速值。

将1s内的转速值换算成1min内的电机转速值,并在LCD上输出测量结果[14]。

/*------------------------主函数-------------------------*/

voidmain()

{

int_all();//全局初始化

while

(1)

{

disp_count();//数据处理

if(zhuan>5000)//转速警告

{

warning=1;

}

if(zhuan<4999)

{

warning=0;

}

write_command(0x80);

for(i=0;i

{

write_data(display[i]);//LCD显示

delay(5);

}

}

}

4.3.2中断服务程序设计

一、外部计数中断

/*-------------------外部中断0计数程序-------------------*/

voidcounter(void)interrupt0

{

EX1=0;//关外部中断0

count++;//计数加1

if(count==4)//4次循环为电机转一圈

{

count=1;//初始化计数

z++;//转圈计数加1

}

EX1=1;//开外部中断0

}

二、定时器中断

/*-----------------内部中断0计时计数程序-----------------*/

voidTime0(void)interrupt2using0

{

TH0=0x4c;//50ms定时

TL0=0x00;

msec++;

if(msec==20)//50*20=1S

{

msec=0;

zhuan=z;

z=0;

}

}

4.3.3显示程序设计

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。

要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。

在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。

每次输入指令前都要判断液晶模块是否处于忙的状态。

向LCD输入的数据有两种,一种是指令,一种是数据。

指令是负责初始化LCD与LCD显示字符是什么位置。

数据是告诉该显示什么。

命令与数据是RS端的高低电平来确定。

数据开始的时候是由LCDCS高电平开始,低电平结束。

图4-4显示流程图

/*--------------------向LCD1602写命令--------------------*/

voidwrite_comm

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

当前位置:首页 > 职业教育 > 中职中专

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

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