直流电机测速并显示
基于C51单片机直流电机测速仪设计

基于C51单片机直流电机测速仪设计摘要:电机的转速是各类电机运行过程中的一个重要监测量,测速装置在电机调速系统中占有非常重要的地位,特别是数字式测速仪在工业电机测速方面有独到的优势。
本文介绍了一种基于C51单片机的光电传感器转速测量系统的设计。
系统采用对射式光电传感器产生与齿轮相对应的脉冲信号,使用AT89C51单片机采样脉冲信号并计算每分钟内脉冲信号的数目,即电机对应的转速值,最终系统通过LCD实时显示电机的转速值。
经过软硬件系统的搭建,分别通过Protues软件系统仿真实验和实际电路搭建检查实验。
仿真实验表明本系统满足设计要求,并且结构简单、实用。
整个直流电机测速系统在降低测速仪成本,提高测速稳定性及可靠性等方面有一定的应用价值。
关键词:转速测量;光电传感器;单片机Based On C51 SCM Single DC Motor Speedometer DesignABSTRACT:Motor speed is all kinds of motor operation is an important process to monitor the amount of speed measuring device in the motor control system occupies a very important position, Especially the digital speedometer in the industrial motor speed has unique advantage. This paper describes a photoelectric sensor 51 SCM-based speed measurement system design. System uses a beam photoelectric sensor generates a pulse signal corresponding to the gear, the use of a sampling pulse signal AT89C51 SCM and calculating the pulse per minute, the number of signals that the speed of the motor corresponding to the value of the final system time through the LCD display the motor speed value.After a hardware and software system structures, respectively, through Protues software system to build the actual circuit simulation and experimental examination. Simulation results show that the system meets the design requirements, and the structure is simple and practical. DC Motor Speed entire system in reducing speedometer costs, improve reliability, speed stability and a certain application value.Keywords: Speed measurement; Photoelectric; Single chip micyoco目录1 绪论 (1)1.1 数字式转速测量系统的发展背景 (1)1.2 转速测量在国民经济中的应用 (1)1.3主要研究内容 (2)1.4 设计的目的和意义 (2)2 转速测量系统的原理 (4)2.1 转速测量原理 (4)2.2 转速测量计算方法 (5)3转速测量系统设计方案 (7)3.1 直流电机转速测量方法 (7)3.2 设计任务及方案 (8)4 直流电机测速系统设计 (9)4.1 单片机AT89C51介绍 (9)4.2 转速信号采集 (14)4.2 转速信号处理电路设计 (16)4.4 最小系统的设计 (17)4.4.1复位电路 (17)4.4.2 晶振电路 (20)4.5 显示部分设计 (20)5 直流测速系统仿真 (24)5.1 直流测速系统仿真 (24)5.1.1单片机最小系统仿真 (25)5.1.2 数码管显示仿真 (25)5.2 主程序流程设计 (26)5.2.1 主程序流程设计 (26)5.2.2 定时器的初始化 (27)5.3 实际电路实验 (28)参考文献 (30)致谢 (31)1 绪论1.1 数字式转速测量系统的发展背景在现代工业自动化高度发展的时期,几乎所有的工业设备都离不开旋转设备,形形色色的电机在不同领域发挥着很重要的作用。
基于单片机的直流电机调速系统设计

直流电机转速 :
根据基尔霍夫第二定律,得到电枢电压电动势平衡方程式 U=Ea+Ia(Ra+Rc)……………式1
式1中,Ra为电枢回路电阻,电枢回路串联保绕阻与电刷 接触电阻的总和;Rc是外接在电枢回路中的调节电阻
由此可得到直流电机的转速公式为:
n=(Ua-IR)/CeΦ ………………………式2
式2中, Ce为电动势常数, Φ是磁通量。 由1式和2式得
n=Ea/CeΦ ……………………………式3
由式3中可以看出, 对于一个已经制造好的电机, 当励磁电压和 负载转矩恒定时, 它的转速由回在电枢两端的电压Ea决定, 电 枢电压越高, 电机转速就越快, 电枢电压降低到0V时, 电机就 停止转动;改变电枢电压的极性, 电机就反转。
PWM脉宽调速
PWM(脉冲宽度调制)是通过控制固定电压的 直流电源开关频率, 改变负载两端的电压, 从 而达到控制要求的一种电压调整方法。在PWM 驱动控制的调整系统中, 按一个固定的频率 来接通和断开电源, 并且根据需要改变一个 周期内“接通”和“断开”时间的长短。通 过改变直流电机电枢上电压的“占空比”来 达到改变平均电压大小的目的, 从而来控制 电动机的转速。也正因为如此, PWM又被称为 “开关驱动装置”。
, 软件简单。但每个按键需要占用一个输入口线, 在 按键数量较多时, 需要较多的输入口线且电路结构复杂, 故此种键盘适用于按键较少或操作速度较高的场合。
数码管显示部分 本设计使用的是一种比较常用的是四位数码 管, 内部的4个数码管共用a~dp这8根数据线, 为使用提供了方便, 因为里面有4个数码管, 所以它有4个公共端, 加上a~dp, 共有12个引 脚, 下面便是一个共阴的四位数码管的内部 结构图(共阳的与之相反)
直流电机转速测量报告

直流电机转速控制摘要……………………………………………………………一、系统总体设计…………………………………………....1.1系统总体方案.................................................................1.2系统总体框图.................................................................二、模块电路方案比较与论证………………………………2.1 电机驱动……………………………………………….2.2 转速检测……………………………………………….三、系统模块电路的设计……………………………………3.1 键盘…………………………………………………….3.2 显示部分……………………………………………....3.3 电机驱动………………………………………………3.4 转速检测………………………………………………四、软件设计…………………………………………………五、测试方案与测试结果……………………………………5.1 测试方案……………………………………………….5.2 测试结果……………………………………………….5.3 误差分析……………………………………………….六、总体结论…………………………………………………七、附录………………………………………………………八、参考文献…………………………………………………摘要:本作品以TI公司的超低功耗MSP430F149和光电传感器为主要部件,设计并制作了电机转速控制系统。
该系统用脉冲调制(PWM)控制驱动电路,从而改变电机转动,有效的降低了功率浪费和热耗散,降低了对电源的要求。
在测量部分使用光电传感器,有效地提高了测量的灵敏度与精度。
通过转速测量可以有效控制电机的运转。
关键字: MSP430F149 光电传感器脉冲调制(PWM)Abstract:this work by TI company MSP430F149 photoelectric sensor and low power consumption for main components, design and manufacture of the motor speed control system. This system by using a pulse modulation (PWM) control circuit, which drive motor rotation, effectively reduce the waste and heat dissipation power, reduced to power requirements. In some measure photoelectric sensor, effectively improve the accuracy of measurement and sensitivity. Through measurement can effectively control motor speed of operation.Key words: MSP430F149 photoelectric sensor pulse modulation (PWM)一、系统总体设计1.1系统总体方案根据题目要求,本系统总共分为六大部分:第一部分键盘输入信号控制了电机转速和显示。
基于proteus的直流电机测速系统仿真

第2期(总第189期)2015年04月机械工程与自动化MECHANICAL ENGINEERING & AUTOMATIONNo.2Apr.文章编号:1672‐6413(2015)02‐0214‐02基于Proteus的直流电机测速系统仿真张小石,郝秀平(中北大学机电工程学院,山西 太原 030051)摘要:介绍了由AT89C51、LCD和L256组成的直流电机测速系统,详细介绍了系统的设计框图,并通过Proteus软件实现仿真。
仿真结果表明该系统具有可控调速、显示直观等特点。
关键词:直流电机;Proteus;仿真;测速系统中图分类号:TP391畅9∶TM33 文献标识码:B收稿日期:2014‐05‐26;修订日期:2014‐12‐26作者简介:张小石(1987‐),男,山西阳泉人,在读硕士研究生,主要从事链式自动机驱动技术。
0 引言直流电机的测速系统通过LCD可视化地显示电机的转速,便于操作人员观察,使其能够更加有效地对电机进行控制。
Proteus软件提供了大量的单片机仿真元器件,相当于虚拟实验室,节省了直流电机的研制成本,缩短了研制周期。
从科学的研究角度来看,基于Proteus的直流电机仿真是必要的、合理的。
1 直流电机测速系统的硬件总体设计本设计实现的是通过LCD显示电机的转速信息。
系统采用AT89C51单片机,通过键盘控制电机并进行可控转速显示,该系统的总体结构框图如图1所示。
图1 直流电机测速系统结构框图2 直流电机测速系统的软件设计直流电机测速系统软件编程时采用了模块化的设计思想,主要功能模块被编成独立的函数,由主程序调用。
其主要的程序模块包括初始化程序、键盘信号采集及处理程序、液晶显示程序、可控调速程序、信息显示程序和超限报警程序。
系统的软件主要采用C语言编制,对单片机程序进行调试,最终实现仿真的相应功能。
3 仿真主要过程在keilc中编译程序并运行,运行结果说明程序调试成功。
程序调试图见图2。
4.1直流测速电动机

任务一 认识速度传感器
一、测速发电机传感器的要求
测速发电机(tachogenerator)是一种检测机械转速的电磁装置。就是
把转子转速转换为电压信号的机电式元件。它的输出电压与转速成正比关系, 即Ua=Kn。
如图4-1所示。
目录
任务一 认识速度传感器
测速发电机的输出电压能表征转速,因而可用来测量转速;测速发 电机的输出电压正比于转子转角对时间的微分,在解算装置中可以把 它作为微分或积分元件。
磁通反向, 因此合成磁场的磁通密度在半个极下是加强了, 在另外半个极
下是削弱了, 如图 (c)所示。 由于电枢磁场的存在, 气隙中的磁场发生畸变
, 这种现象称为电枢反应。
目录
•
如果电机的磁路不饱和(即磁路为线性), 磁场的合成就可以应用叠加
原理。 例如, N极右半个极下的合成磁通等于 1/2 主磁通与 1/2 电枢磁通之
•
4)电刷装置:电刷的作用是把转动的电枢绕组与静止的外电路相连接,
并与换向器相配合,起到整流或逆变器的作用。
• 转子部分:
•
转子称为电枢,包括电枢铁心、电枢绕组、换向器、风扇、轴和轴承等
。
•
1)电枢铁心:电机主磁路的一部分,用来嵌
• 放电枢绕组的,为了减少电枢旋转时电枢铁心中
目录
退出
返 回 上一页 下一页
磁场, 图 c是主磁场和电枢磁场的合成磁场。
目录
直流电机磁场
目录
•
磁场的分布在电机学中已作了分析,磁场的分布如图 (a)所示。电枢
电流所产生的磁场如图 (b)所示。由图 (b)可以看出, 在每个主磁极下面,
电枢磁场的磁通在半个极下由电枢指向磁极, 在另外半个极下则由磁极指
直流电机速度PID控制系统设计毕业论文(设计).doc.doc

序号(学号〉: 161240303长春大学 毕业设计(论文)直流电机速度PID 控制系统设计李一丹国际教育学院自动化1612403曹福成2016 年 5 月 30 0姓 名 学 院 专 业 班 级 指导教师直流电机速度PID控制系统设计摘要:针对现有的直流电机控速难的问题,本文设计了一种基于ATmegal6L单片机的直流电机速度控制系统。
本系统以ATinegal6L单片机为主控制器,搭载了L298n为电机驱动,通过霍尔元件进行测速,通过按键控制电机的转动方向和转动速度,并配以温度传感器DS18B20对温度进行监测,通过PID算法调节PW\1 进行对速度控制。
该系统包括的模块主要有单片机为主体的控制模块、电机的驱动模块、对电机速度进行监测的模块、由LCD1602构成的显示ky r模块、电源模块和按键控制模块等。
本系统可以通过PID算法实现可编程脉宽波形对直流电机的速度进行控制,并且可以显示出当前电机的转速。
关键词:单片机;PID算法;直流电机The design of DC motor speed control system with PID Abstract: According to the existing DC motor speed control problem, this paper describes the design of a DC motor speed control system based on ATmegal6L MCU. To ATMEGA16L microcontroller as the main controller for the system, equipped with a L298n for motor drive, through the hall element of speed, through the buttons to control the motor rotation direction and the rotation speed, and the temperature sensor DS18B20 the temperature monitoring, PID algorithm is used to adjust the PWM control of the speed. The system includes the following modules display microprocessor control module, as the main body of the motor drive module, monitoring module, the speed of motor is composed of LCD1602 module, power supply module and key control module.This system can realize through PID algorithm to control the speed of the programming pulse waveforms of DC motor, and can display the current motor speed.Keywords: single chip microcomputer, PID algorithm, DC motor ky r戈ml ml ——II —In —In | * 11—I 1111 ml 1111目录Bit (1)l.i选题背景及意义 (1)1.2国内外研宄现状 (2)1.3木文主要研究的内容 (3)第2章总体方案论述 (4)ky r2.1系统主要传感器介绍 (4)2.1.1温度传感器 (4)2.1.2转速检测模块 (5)2.2系统总体功能及方案选择 (6)2.2.1系统所需模块及功能 (6)2.2.2主控制器选择 (8)第3章系统总体硬件设计 (10)3.1单片机最小系统 (10)3.1.1ATmegal6L单片机的引脚分布 (10)3.1.2最小系统的硬件电路 (13)3.2电机驱动电路 (14)3.3温度检测电路 (15)3.4光电管提示电路和按键控制电路 (15)3.5LCD1602 显示电路 (16)3.6电源电路 (17)3.7本章小节 (18)第4章系统软件设计 (19)4.1系统总体流程图 (19)4.2 PID算法简介 (19)4.2.1PID算法介绍 (20)4.2.2HD算法结果 (21)4.3系统调试步骤 (21)4.4误差分析即改进方法 (22)给论 (23)致谢 (24)参考文献 (25)隱 (26)附录I系统总体硬件电路图 (26)附录II系统中部分程序 (27)ky r In—ml ml ml ml | , I af—.第1章绪论1.1选题背景及意义电动机简称电机,俗称马达,在现实生活中,我们处处都可以见到电机的身影,小到小学生玩的电动四驱车,大到炼钢厂用的滚动罐,这些都是电机家族的成员。
基于光电传感器的直流电机转速测量系统设计-课设报告

北京信息科技大学测控综合实践课程设计报告题目:基于光电传感器的直流电机转速测量系统设计学院:仪器科学与光电工程学院专业:测控技术与仪器学生姓名:摘要摘要基于单片机的转速测量方法较多,本次设计主要针对于光电传感器测量直流电机转速的原理进行简单介绍,并说明它是如何对电机转速进行测量的。
通过实验得到结果并进行了数据分析。
本次设计应用了STC89C52RC单片机,采用光电传感器测量电机转速的方法,其中硬件系统包括脉冲信号的产生模块、脉冲信号的处理模块和转速的显示模块三个模块,采用C语言编程,结果表明该方法具有简单、精度高、稳定性好的优点。
关键词:直流电机;单片机;PWM调节;光电传感器Abstract目录摘要 (I)第一章概述 (1)1.1 课设目标 (1)1.2 内容 (1)第二章系统设计原理 (2)2.1 STC89C52单片机介绍 (2)2.2 STC89C52定时计数器 (4)2.3 STC89C52中断控制 (6)2.4 光电传感器 (6)2.5 数码管介绍 (7)第三章硬件系统设计 (10)3.1测速信号采集及其处理 (10)3.2 单片机处理电路设计 (11)3.3 显示电路 (12)3.4 PWM驱动电路 (13)第四章软件设计 (14)4.1语言选用 (14)4.2程序设计流程图 (14)4.3原程序代码 (15)第五章数据分析 (19)总结 (20)附件 (21)参考文献 (23)第一章概述在工程实践中,经常会遇到各种需要测量转速的场合,例如在发动机、电动机、卷扬机、机床主轴等旋转设备的试验、运转和控制中,常需要分时或连续测量和显示其转速及瞬时转速。
目前国内外测量电机转速的方法有很多,按照不同的理论方法,先后产生过模拟测速法(如离心式转速表、用电机转矩或者电机电枢电动势计算所得)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速法。
计数测速法又可分为机械式定时计数法和电子式定时计数法。
课程设计实验报告-直流电机测速 (1)

直流电机测速摘要设计一种直流电机调速系统,以STC89C52 为控制核心,通过ULN2003 驱动电机,使用ST151 测量转速,实现了按键输入、电机驱动、转速控制、转速显示等功能。
关键词:直流电机, 80C51, ULN2003, 转速控制第一章题目描述直流小电机调速系统:采用单片机、ul n2003 为主要器件,设计直流电机调速系统,实现电机速度开环可调。
要求:1、电机速度分30r /m、60r /m、100r /m共3 档;2、通过按选择速度;3、检测并显示各档速度。
所需器件:实验板(中号)、直流电机、STC89C52、电容(30pFⅹ2、10uF ⅹ2)、数码管(共阳、四位一体)、晶振(12M H z )、小按键(4 个)、ST151、电阻、发光二极管等。
第二章方案论述按照题给要求,我们最终设计了如下的解决方案:用户通过键盘键入控制指令(开关),微控制器在收到指令后改变输出的 PW M波,最终在 U LN2003 的驱动下电机转速发生改变。
通过 ST151 传感器测量电机扇叶的旋转情况,将转速显示在数码管上。
在程序主循环中实现按键扫描与转速显示,将定时器0 作为计数器,计数ST151 产生的下降沿,可算出转速,并送至数码管显示。
第三章硬件部分设计系统硬件部分包含输入模块、显示模块、控制模块、测速模块等。
在硬件搭建前,先通过Pr ot eus Pr o 7. 5 进行硬件仿真实现。
1. 时钟电路系统采用12M 晶振与两个30pF 电容组成震荡电路,接STC89C52 的 XTAL1 与 XTAL2 引脚,为微控制器提供时钟源2. 按键电路四个按键分别控制电机的不同转速,即控制 PW M波高电平的占空比,以实现电机的速度控制,采用开环控制方法,不是十分精确,但控制简单,易实现,代码编写简单3. 显示部分系统采用4 位共阴极数码管实现转速显示。
数码管的位选端1~4 分别接STC89C52 的P2. 0~P2. 3 管脚,端选段A~G与 D P分别接 STC89C52 的 P0. 0~P0. 7 管脚。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可实现功能:1 可控制左右旋转2 可控制停止转动3 有测速功能,即时显示在液晶上4 有速度档位选择,分五个档次,但不能精确控速5 档位显示在液晶上用到的知识:1 用外部中断检测电机送来的下降沿,在一定时间里统计脉冲个数,进行算出转速。
2 通过改变占空比可改变电机速度,占空比的改变可以通过改变定时器的重装初值来实现。
3 要想精确控制速度,还需要用自动控制理论里的PID算法,但参数难以选定,故在此设计中没有涉及!#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit PW1=P1^0 ;sbit PW2=P1^1 ; //控制电机的两个输入sbit accelerate=P0^2 ; //调速按键sbit stop=P0^3 ; //停止按键sbit left=P0^4 ; //左转按键sbit right=P0^5 ; //右转按键sbit detect=P3^2; //检测脉冲sbit lcdrs=P0^0;sbit lcden=P0^1;#define Da P2uint temp; //保存检测到的电平数据以便比较uint count; //用于计数uint aa,bb; //用于计数uint speed; //用来计算转速uint a=25000;uint t0=25000,t1=25000; //初始时占空比为50%uchar flag=1; //此标志用于选择不同的装载初值uchar dflag; //左右转标志uchar sflag=1; //用来标志速度档位#define right_turn PW1=0;PW2=1 //顺时针转动#define left_turn PW1=1;PW2=0 //逆向转动#define end_turn PW1=1;PW2=1 //停转void keyscan(); //键盘扫描void delay(uchar z);void time_init(); //定时器的初始化void write_(uchar ); //液晶写指令void write_data(uchar date); //液晶写数据void lcd_init(); //液晶初始化void display(uint rate); //显赫速度void int0_init(); //定时器0初始化void keyscan(); //键盘扫描程序void judge_derection();void main(){time_init(); //定时器的初始化lcd_init(); //液晶初始化int0_init(); //定时器0初始化while(1){}}void time_init(){TMOD=0x11; //两个定时器都设定为工作方式1 十六位定时计数器EA=1; //开启总中断TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;TR0=1;TH1=(65536-a)/256;TL1=(65536-a)%256;ET1=1;TR1=0;}void int0_init(){EX0=1;//外部中断源可以申请中断IT0=1;//外部中断源下降沿触发}void timer0() interrupt 1 using 0 {TH0=(65536-50000)/256;TL0=(65536-50000)%256; //装载初值keyscan(); //键盘扫描程序aa++;if(aa==5){temp=count*0.5*60*2*2*100/24; //计算转速,每分转多少圈count=0; //重新开始计数脉冲数display(temp); //把计算得的结果显示出来}}void timer1() interrupt 3 using 0{if(flag){flag=0;end_turn;a=t0; //t0的大小决定着低电平延续时间TH1=(65536-a)/256;TL1=(65536-a)%256; //重装载初值}elseflag=1; //这个标志起到交替输出高低电平的作用if(dflag==0){right_turn; //右转}else{left_turn; //左转}a=t1; //t1的大小决定着高电平延续时间TH1=(65536-a)/256;TL1=(65536-a)%256; //重装载初值}}/*******外部中断*******************/void _int0() interrupt 0count++; //来一个下降沿沿就计一个脉冲数}/*******显示函数***********/void display(uint rate){uchar wan,qian, bai,shi,ge;wan=rate/10000;qian=rate/1000%10;bai=rate/100%10;shi=rate/10%10;ge=rate%10;write_(0x80);write_data('0'+wan);write_data('0'+qian);write_data('0'+bai);write_data('.');write_data('0'+shi);write_data('0'+ge);/******延时函数********/void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--) ;}/************写指令************/ void write_(uchar ){lcdrs=0;Da=;delay(1);lcden=1;delay(1);lcden=0;}/************写数据**********/void write_data(uchar date){lcdrs=1;Da=date;delay(1);lcden=1;delay(1);lcden=0;}/************液晶初始化**********/void lcd_init(){lcden=0;write_(0x38) ; //初始化write_(0x0c) ; //打开光标0x0c不显示光标0x0e光标不闪,0x0f光标闪write_(0x01) ; //清显示write_(0x80+0x40);write_data('0');write_data(' ');write_data('G');write_data('e');write_data('a');write_data('r');}/***********键盘扫描程序**********/void keyscan(){if(stop==0){TR1=0; //关闭定时器0 即可停止转动end_turn; // 停止供电write_(0x80+0x40);write_data('0');}if(left==0){TR1=1;dflag=1; //转向标志置位则左转write_(0x80+0x40);write_data('0'+sflag);}if(right==0){TR1=1;dflag=0; //转向标志复位则右转write_(0x80+0x40);write_data('0'+sflag);}if(accelerate==0){delay(10) ; //延时消抖if(accelerate==0){while(accelerate==0) ; //等待松手sflag++;if(sflag==2){t0=20000;t1=30000; //占空比为百分之60write_(0x80+0x40);write_data('2');}if(sflag==3){t0=15000;t1=35000; //占空比为百分之70write_(0x80+0x40);write_data('3');}if(sflag==4){t0=10000;t1=40000; //占空比为百分之80write_(0x80+0x40);write_data('4');}if(sflag==5){t0=5000;t1=45000; //占空比为百分之90write_(0x80+0x40);write_data('5');}if(sflag>=6){sflag=0;t0=25000;t1=25000;write_(0x80+0x40);write_data('1');}}}}。