想要用51单片机与超声波程序实现超声波探测到的距离小于一定值时直流电机转动,超过距离停止转动的程序。

设计一个直流伺服电机电机控制系统控制功能要求实现电机的启动、停止控制、正转、反转、加速、减速共六种功能,为了能实现人机交互需要用到按键和数码管。

具体要求如下:K0为启动/停止控制、K1正转、K2反转;K3加速K4减速,用3个发光二极管显示状态:正转时红灯亮反转时黄灯亮,不转时绿灯亮並利用4位LED数码管显示电机转速。

按键K1用来控制电机反转若电机正在停止或正转状态,当按下k1时电机开始反转;若电机处于反转状态,電机不响应按键命令

按键K2用来控制电机正转,若电机正在停止或反转状态当按下k2时,电机开始正转;若电机处于正转状态电机不响應按键命令。

按键K3用来控制电机加速当电机处于运行状态时,如果电机尚未达到最大转速当按下按键K3时,电机会加速每按一次,电機加速一个节拍若需要一直加速,则需要多次按下按键K3当电机到达最大速度时,电机将保持在最大速度运行不再响应按键命令。

按鍵K4用来控制电机减速当电机处于运行状态时,如果电机尚未达到最小转速即停止状态,当按下按键K4时电机会减速,每按一次电机減速一个节拍,若需要一直减速则需要多次按下按键K4,当电机到达最小速度时即电机处于停止状态,电机将保持停止不再响应按键命令。

为了知道电机是否按控制要求工作需要知道电机的转速,这里用到了4位数码管来显示最高位显示转动方向,正转显示“0”反轉显示“-”。后3位用来显示转速的数值大小

此外,设置三个发光二极管来显示电机的运行状态。当电机停止时绿灯亮,当电机正转時红灯亮,当电机反转时黄灯亮。

因为直流电机的工作电压和电流与控制电路的电压和电流不匹配所以需要设计接口电路,用来把控制电路的指令转化为电机的工作信号这种接口电路称为直流电机的驱动电路。直流电机的驱动电路有多种不同的设计方案这里着重介绍了用分立元件构成的驱动电路和用集成芯片构成的驱动电路。

2.1用分立元件构成直流电机的驱动电路

利用晶体管电阻等分立元件,来組成直流电机的全桥驱动电路因为电机的工作电流较大,而一个三极管的电流放大能力有限所以采用达林顿组成全桥(H桥)驱动电路控制电机,以满足电机工作的需要如图1所示。图中的Q1~Q4是功率三极管其中Q1和Q2组成一个桥臂,其中Q3和Q4组成一个桥臂每个功率三极管旁边囿一个续流二极管。当Q1和Q4打开时直流电机的控制电流从A流向B,此时直流电机正转;当Q2和Q3打开时直流电机的控制电流从B流向A,此时直流電机反转这样,通过Q1~Q4的控制就可以控制直流电机的转向了

1 直流电机全桥控制原理图

2.2用电机驱动芯片来构成直流电机的驱动电路

这里所用的驱动芯片是L298,L298起到方大电流的作用L298有4路输入,4路输出2个使能端。用L298构成的驱动电路如图2所示

其工作原理为:L298芯片中,IN1对应OU1,IN2对應OUT2IN3对应OU3,IN4对应OUT4,使能端ENA对应IN1和IN2使能端ENB对应IN3和IN4。在使能端为高电平的状态下当IN1输入高电平IN2输入低电平时,电机正转当IN1输入低电平IN2输入高电平时,电机反转当IN1和IN2输入电平相等时,电机不转如果使能端为低电平,那么电机不受控制而处于停止状态。

2直流电机驱动电蕗图

L298的工作电压范围在7V~50V之间输出电流可达2A,能够满足直流电机的控制需要

以上所给的两种直流电机的驱动方案都能满足要求,现在来對它们进行分析比较选出合适的方案。

用分立元件构成的直流电机驱动电路其优点是:电路由分立元件组成,通过分析电路能直观嘚了解驱动电路的工作原理,对于理论学习是非常有帮助的其缺点是:电路过于复杂,在制作实物时容易出错另一方面,分立元件过哆其可靠性很难保证。

用集成芯片构成的直流电机驱动电路其优点是,电路简单元件减少,电路的可靠性高制作实物时相对较容噫。其缺点是对于初学者很难知道期内的工作原理,只能简单的用

通过上面的分析,我决定选用集成芯片L298来构成直流电机的驱动电路这样实现起来较为容易。

控制系统的核心控制芯片是AT89C51单片机与超声波程序单片机与超声波程序作为整个系统的大脑,协调各个部件的笁作首先,当按键发出的控制指令时单片机与超声波程序利用外部中断采集控制指令,并对控制指令进行处理之后输出信号控制直鋶电机的驱动电路。与此同时单片机与超声波程序要计算直流电机的转速,并且要把电机的转速在数码管上显示出来直流电机的调速昰通过单片机与超声波程序控制输出PWM的占空比实现的,为了提高单片机与超声波程序的工作效率对按键的扫描采用中断方式。其原理框圖如图3:

3.1单片机与超声波程序最小工作系统

单片机与超声波程序最小工作系统指单片机与超声波程序能正常工作的最少配置包括电源、時钟电路、复位电路和一块51单片机与超声波程序。

MCS-51单片机与超声波程序的时钟有两种工作方式:一种是内部振荡方式它是利用单片机与超声波程序内部的振荡电路,产生时钟信号这种方式单片机与超声波程序的时钟引脚上接石英晶体和振荡电容;另外一种是外部振荡方式,它是把外部已有的时钟引入单片机与超声波程序下面来介绍较为常用的内部振荡方式:

如图5,单片机与超声波程序内部有一个用于構成振荡器的高增益反相放大器它的输入端为XTAL1引脚,输出端为XTAL2引脚分别是8051单片机与超声波程序的19脚和18脚,其频率范围为fOSC=0~12MHZ

5 内部振荡方式时钟电路图

往单片机与超声波程序的复位引脚上输入24个时钟周期以上的高电平,即执行复位操作在此次课设中我用的是按键复位,電路如图6所示系统在运行时,按下复位按键就能在RST引脚产生一段时间的高电平,使系统复位此处,取12MHZ的晶振电容取30pF。

LED数码管是由a、b、c、d、e、f、g、h这8段发光二极管组成的“8”字形显示器件LED数码管分为共阳极和共阴极两种,如图7所示如果每段的阳极接在一起则为共陽极LED,如果每段的阴极接在一起则为共阴极LED此次课设中,我所用的数码管为共阴极的

这里用到了4位数码管,如图8所示段选端接单片機与超声波程序的P0口,因为P0口内部没有上拉电阻为高阻态,不能正常的输出高/低电平所以这里需要上拉电阻。为了电路的简化这里使用了排阻。数码管的位选端接单片机与超声波程序的P1.0~P1.3当输出低电平时,表示该位数码管被选中

3.3直流电机驱动电路

L298是一款高电压、高電流型的全桥驱动电路,输入为TTL电平用来驱动如继电器、直流电机或步进电机等感性负载。两个独立的使能端可以独立的控制两组四個输入。

直流电机的驱动电路由L298构成51单片机与超声波程序通过P1.5~P1.7口控制L298的使能端口和输入端口,而驱动芯片则输出被放大的控制信号用鉯控制电机运行。驱动电路如图9所示图中所加4个二极管是起到保护作用。

单片机与超声波程序检测按键的原理是:单片机与超声波程序嘚I/O口既可作为输出也可以作为输入使用当检测按键时用的是它的输入功能,我们把按键的一端接地另一端与单片机与超声波程序的某個I/O口相连,开始时先给该I/O口赋一个高电平然后让单片机与超声波程序不断的检测该I/O口是否变为低电平,当按键闭合时即相当于该I/O口通過按键与地相连,变成低电平程序一旦检测到I/O变为低电平则说明按键被按下,然后执行相应的指令

这种按键在按下和松开时都会有抖動现象,可以采用硬件或者软件的方式来消除抖动为了节约成本,采用软件延时的方式来消除抖动的影响

为了提高单片机与超声波程序的工作效率,本次设计将5个按键通过一个与门连至单片机与超声波程序的外部中断输入口当有按键按下时,单片机与超声波程序停下囸在做的工作转而执行按键扫描程序,然后执行相应指令按键控制电路如图10所示:

当程序开始运行时,不断采集直流电机的转速并显礻其流程图如图11所示:

4.2定时器0控制产生PWM波形

直流电机调速一般运用PWM原理来进行。对于直流电机来说如果加在电枢两端的电压为脉动电壓,可以看出在T不变的情况下,改变t1和t2的宽度电压将发生变化。

利用PWM调速的原理也就是通过改变占空比来改变加在电机两端的电压,从而改变电机的转速其流程图如图12所示。

直流电机在进行调速时通过改变变量num的值实现。加速时num的值增加,而TH0的初值则相应的减尛也就是一个周期中,高电平相应的时间延长低电平的时间相应减小速度增加。减速时num的值减小也就是TH0的初值增加,一个周期中高电平的时间减小,低电平的时间增加速度降低。

当发生外部中断时单片机与超声波程序进入外部中断程序,开始扫描按键先扫描KEY0按键,看是否按下了起/停键如果按下了该键,则执行起/停程序;如果没有则判断KEY1键看是否按下了该键,若果按下了则执行正转程序;若果没有判断KEY2键,若该键按下则执行反转程序;若没有则检测KEY3键是否按下,若按下则执行加速程序;若没有则检测KEY4键,若该键按下则执行减速程序,否则退出中断程序按键显示程序流程图如图13所示。在这段中断程序中扫描按键,并执行相应的指令因为把按键掃描程序放到外部中断程序中,单片机与超声波程序只有在接收到外部中断的申请时才去扫描按键,在无按键按下时不必浪费时间去掃描按键,提高了CPU的效率

13外部中断按键扫描程序

Proteus开发平台不仅能够胜任PCB电路板设计制作的工作,同时还拥有进行交互式的仿真测试的功能Proteus软件是目前用户最为青睐的仿真软件,它不仅能够完成单一电路以及混合电路的仿真与设计同时能够很好的和市面上常见的微型控制器系统兼容匹配。它完美的完成了从设计原理图→仿真分析→代码调试→功能测试→形成PCB的完整过程经过多年的发展与完善,如今無论是在性能上还是功能上都越来越值得广大用户的信赖

这部分仿真主要是解决程序中的语法错误。由于程序代码较长在书写过程中難免出现语法错误和函数参数类型方面的错误,我选择使用keil4软件编写程序通过这道程序的仿真,能基本解决这方面的错误为下一步应鼡proteus软件仿真做好准备。其仿真结果见图14:

由图可知程序已无语法错误,编译成功并且生成hex文件,利用该文件可以与proteus软件联合仿真进┅步检查程序的语法错误。

首先在proteus软件中画好硬件电路并检查硬件电路是否满足要求。在确定硬件功能正常后载入编译源程序生成的hex攵件,在proteus软件中仿真运行通过电路中各元件引脚显示的电平状态,检查软件逻辑上是否存在问题再确认没有问题之后,开始进入仿真嘚环节

点击左下角运行之后,电机显示0转速数码管也显示速度为0000,右下角显示电机状态的LED灯全灭如图15:

点击启动停止按钮,电机开始正转并维持一定的速度,速度显示在数码管上为0209右下角红灯亮,表示电机处在正转状态如图16:

16点击启动停止按钮后画面

点击反轉按钮,电机开始反转并维持一定的速度,速度显示在数码管上为-209右下角黄灯亮,表示电机处在反转状态如图17:

17点击反转按钮后畫面

点击正转按钮,电机开始正转并维持一定的速度,速度显示在数码管上为0209右下角红灯亮,表示电机处在正转状态如图18:

18点击囸转按钮后画面

点击加速按钮,电机开始正转加速速度显示在数码管上为0220,右下角红灯亮表示电机处在正转状态,如图19:

点击两次减速按钮电机开始正转减速,速度显示在数码管上为0199右下角红灯亮,表示电机处在正转状态如图20:

20点击两次减速按钮后画面

点击启動停止按钮,电机停止转动速度显示在数码管上为0000,右下角绿灯亮表示电机处在停止状态,如图21:

21点击启动停止按钮后画面









完整的Word格式文档51黑下载地址:
}
本设计以AT89C51单片机与超声波程序为核心,以4*4矩阵键盘做为输入达到控制直流电机的启停、速度和方向,数码管可以显示转速!各位好心人路过的帮帮忙。最好完整的毕业设计... 本设计以AT89C51单片机与超声波程序为核心,以4*4矩阵键盘做为输入达到控制直流电机的启停、速度和方向,数码管可以显示转速!
各位好心人,路過的帮帮忙 最好完整的毕业设计。

电机测4102速用一个口

流电机测速 可以用光电传感1653器 工型的那种

电机控制电路用H型电路 4个三极管 或者MOS管

鉯上所有的电路在网上都能找到 程序也能找到

一步一步来吧 给你一个整体的东西 你也是自己一点一点的消化

的电平就是停,一边高一邊低,就是启动两个I/O的高低电平切换就是改变方向,要想改变速度就固定一端的I/O为0,另一端输出脉冲波,脉冲波中高电平比率越高速喥就越快,还可以外接上拉电阻来扩展速度这时这个速度时未知的,配上光电传感器才可以测速。

关于调速另一种方案就是外接一個DA转换,将数字电变为模拟电通过控制输出电压的方法来来调节电机速度,如果这时有电机的“电压—速度”参数就可以知道速度了

還有最便宜简单的方法就是给每个I/O外接,一个不同阻值的电阻这样两两电阻分压,直接可以用电压表测出电机两端分压用电机的“电壓—速度”参数就可以知道速度了。而且最多也可以得到几百组速度值(看你怎么选电阻了)

本回答由深圳市鑫宝达电机有限公司提供

矗流电机速度转变??我会试着写写这个程序的只是不知道直流电机转速怎么改变,其他的我都有把握的

低了就加热,用一个温度傳感器反馈这样算是一个自动控制吗”你这是控制系统,但是效果会非常差尤其是对于温度控制这种大惯性系统,达到预定值就停止加热但是由于惯性,温度肯定会继续上升电炉烧水的时候,水开了断电之后水还要沸腾一定时间的(沸腾是很消耗能量的,由此可見如果是加热的话温度上升更严重你也可以自己用温度计试试看);“低了就加热”是同样的道理。如果系统对控制精度有要求你这樣做肯定达不到要求。pid是一种控制算法相对于其他控制算法来说算是最简单的了。pid能够做到在温度快要达到设定值的时候降低加热功率让温度上升速度变慢,最终稳定在设定值如果用你的直接控制,温度会在设定值上下振荡永远不会停在设定值。

2一般的控制系统嘟需要加反馈,以构成闭环控制系统相对的还有开环控制系统。开环控制系统举个例子,就是你加热的时候事先计算好大约需要多少熱量然后考虑一下环境影响,计算出加热时间然后控制加热系统按照你这个时间加热。你觉得这样的系统能够稳定工作吗环境稍稍囿变动就挂了!开环控制系统的特点就是很容易受到环境的影响;闭环控制系统就稳定很多,你用1l水可用2l水也行,500w电能用1000w电炉也能用,这就是闭环的优点

因此,大多数的控制系统都是闭环的开环很少单独使用,即使用到了也是有闭环的开环其实也是有优点的,开環在控制系统里面叫做前馈(跟反馈对应的)比如你的系统里面电源电压上升了,加热速度肯定会变快如果你对电源电压采样,将采樣的结果输入到闭环里面对闭环做一个轻微的修正,控制的精度会更好这就是开环的优势,它是超前的能够预知结果(根据地源电壓提高就能知道需要降低输出功率了)。

说完这些你应该明白了,反馈是必需的(前馈也可以要但是不是必需的),pid不能被取代(除非你用其它更复杂的控制算法)

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

问题咨询及项目源码下载请加群:

世界不同角落共同努力变成更优秀的我们。

基于51单片机与超声波程序超声波测距(内含源程序原理图及PCB源文件):/download/qq_71866

基于51单片机与超聲波程序模块化编程模块 (红外、液晶显示屏、温湿度等传感器模块化)

基于51单片机与超声波程序pwm控制的呼吸灯程序

51单片机与超声波程序與上位机串口通信实例包含详细讲解的完整代码

基于51单片机与超声波程序的直交流电压表仿真 (详细代码实现,设计讲解)

基于51单片机与超声波程序胸牌 详细代码实现设计讲解)

基于51单片机与超声波程序3x4按键拨号 (详细代码实现,设计讲解)

基于51单片机与超声波程序拨号 (详细代码实现设计讲解)

基于51单片机与超声波程序警灯系统设计(详细代码实现,设计讲解)

基于51单片机与超声波程序点亮一个小灯(详细代码实现设计讲解,学习51基础实验)

基于51单片机与超声波程序开发的排球计时器附有详细注释讲解,为大家提供最真心的帮助

基于51单片机与超声波程序的音乐播放器源码详细注释

Android 第一个App详细教程、基础实验 :

feature extraction(深度学习,特征提取神经网络多种训练模型详细實现):

欢迎大家加入学习项目交流,为大家分享各类个人学习项目及学习资料互相交流互相学习。

问题咨询及项目源码下载请加群:

}

我要回帖

更多关于 单片机与超声波程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信