单片机控制直流电机正反转
单片机控制直流电机正反转调速--基础简单实现
单片机控制直流电机正反转调速--基础简单实现
如何使用单片机控制直流电机呢?
真正控制之前我们要知道以下三点:
1、直流电机的控制是通过设置PWM波的占空比来控制直流电机的转速,占空比越大,转速越快,越小转速越低。
2、单片机的I/O口是不能直接驱动电机的,所以你还需要用一个驱动芯片。
像LG9110、CMO825L298等。
驱动芯片可以将单片机I/O输出信号放大,这样电机中流过的电流足够大,电机才能转起来。
本文采用的是L298
3、为了实现调节转速功能必须来个滑动变阻器和数模转化器
ADC0831,同时使用开关控制电机正反转。
开始行动~
OK一切就绪。
基于单片机的直流电机调速系统设计
直流电机转速 :
根据基尔霍夫第二定律,得到电枢电压电动势平衡方程式 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个引 脚, 下面便是一个共阴的四位数码管的内部 结构图(共阳的与之相反)
基于51单片机红外遥控电机课程设计说明书
课程实训报告课程名称:单片机与接口技术实训题目:红外控制直流电机正反转任务书一、实训任务设计一款基于AT89C51单片机用红外遥控控制电机的正反转加减速。
二、设计要求1. 基本要求1).用无线模块控制电机的正反转加减速,实现自动化控制。
2).通过对AT89C51单片机的编程,实现直流电机的正反转,加减速。
3).写出详细的设计报告。
4).给出全部电路和源程序。
2. 发挥部分1).可通过PC机,对系统编程,实现直流电机转速的快慢。
摘要随着科技的不断进步,人们进入了无线电时代,它为我们的生活带来了极大的方便。
像现在的移动电话,无线网络,无线鼠标,无线键盘等都已经融入了我们的生活当中。
从我们身边的电子产品就可以看出我们已经进入了无线电时代。
本设计就是一款基于AT89C51的用无线模块控制的电机的正反转以及它的加减速。
这非常适应于在工厂使用,特别是在工业控制中。
可以想象,机器在工厂运转时,我们只需要用无线遥控来控制电机的转速以及它的转向,这样我们就可以在远处来控制了,用不着再跑到电机的旁边来控制开关,为工厂生产带来了极大的方便。
软件上采用C51编程,主要编写了主程序,直流电机驱动程序,中断程序延时程序等。
经过调试,实现了对电机的控制。
关键词:AT89C51 L298 PWM 直流电机无线模块目录第一章绪论 (5)1.1 概述 (5)1.2 设计目的 (5)1.3 设计任务和内容 (5)第二章总体设计及核心器件简介 (7)2.1总体设计 (7)2.2 AT89C51 (7)2.3 L298 (9)引脚介绍: (10)2.4 伺服电机介绍 (11)2.5 PT2262/PT2272 (12)第三章单元电路模块设计 (17)3.1 复位电路 (17)3.2时钟电路 (18)3.3电机驱动电路图 (18)3.4PWM调速系统设计 (19)第四章软件编程设计 (21)4.1 设计思想 (21)4.2 流程图 (21)4.3源程序 (22)第五章设计心得和存在问题 (26)第一章绪论1.1 概述近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
基于单片机的直流电机控制系统
摘要本设计首先介绍了AT89S52单片机,L298驱动电路及直流电机的基本原理与功能;其次,设计直流电机实现转向、速度的控制方案;再次,在这些器件功能与特点的基础上,拟出设计思路,构建系统的总体框架,并利用LED数码管对测试结果进行显示;最后利用Proteus软件绘出电路图,同时写出设计系统的运行流程和相关程序。
整个系统通过写入单片机中的程序分配好控制字的存储单元以及相应的内存地址赋值;启动系统后,从单片机的I/O口输出控制脉冲,经过L298驱动电路对脉冲进行处理,输出能直接控制直流电机的脉冲信号。
本系统采用了低成本的AT89S52单片机芯片作为控制芯片,以按键做为输入达到对直流电机的启停、速度和方向的精确控制。
直流电机的驱动采用的是达林顿集成管L298,并且采用LED的进行显示。
在设计中,采用了PWM技术对电机进行控制,通过对占空比的计算达到精确调速的目的。
总之,本次设计出了操作简单、显示直观的直流电机控制系统。
关键字: AT89S52单片机;L298驱动芯片;直流电机。
AbstractThe design first introduced the AT89S52 single-chip microcomputer, L298 drive circuit and dc motor of the basic principle and function; Second, the design of dc motor to realize, the speed control scheme; and Again, in these devices based on the characteristics of the function and, draw up the design idea, construction of the whole system framework, and use of LED digital tube the results shows; Finally, using the Proteus software draw circuit diagram, at the same time, write design the operation of the system process and procedures. The whole system by writing to the single chip microcomputer program allocation good control of the word and the corresponding storage unit of the memory address assignment; Reboot your system, from single chip I/O mouth output control pulse, after L298 driving circuit pulse processing, the output can directly control dc motor of the pulse signal. This system USES a low cost AT89S52 single-chip microcomputer chip as control chip, with button as input to the keyboard to dc motor of the rev. Stop, speed and direction of the accurate control. Dc motor driver uses is the integration of L298 tube, and using the LED displayed. In the design, adopted PWM technology of motor control, through to the occupies emptiescompared to achieve the purpose of accurate calculation speed. All in all, this design out the operation is simple, direct display of dc motor control system.Key word:AT89S52 single-chip microcomputer; L298 driving chip; DC motor.目录1 绪论 (1)1.1 直流电机调速系统的发展 (1)1.2 开发背景 (2)1.3 选题的目的及意义 (3)1.4 研究方法 (4)2 系统方案设计 (5)2.1 概述 (5)2.2 总体设计任务 (5)2.3 系统总体设计方案论证 (6)2.4 系统总体设计方框图 (7)2.5 直流电机调速概述 (8)2.5.1 直流电机简介 (8)2.5.2 直流电机调速原理 (9)2.5.3 直流调速系统实现方式论证 (9)3 电机调速驱动设计 (11)3.1 PWM控制方式 (11)3.2 PWM控制的基本原理 (11)3.3 PWM 发生电路的设计 (13)3.4 功率放大驱动电路 (16)3.4.1 芯片L 298 性能及特点....................... ..163.4.2 L298芯片引脚的电气特性及功能 (17)3.4.3 L298驱动电机的逻辑功能 (19)4 硬件电路设计 (21)4.1 AT89S52的最小系统电路 (21)4.1.1 单片机芯片AT89S52介绍 (21)4.1.2单片机管脚说明 (22)4.1.3 时钟电路 (25)4.1.4 复位电路 (26)4.2 数码管显示 (27)4.3 排阻的简介 (27)4.4 显示电路与AT89S52单片机接口电路设计 (28)4.5 键盘与AT89S52单片机接口电路设计 (30)4.6 驱动电路与AT89S52单片机接口电路设计 (30)5 系统软件设计 (32)5.1 主程序设计 (33)5.2 子程序设计 (34)5.2.1 键盘子程序设计 (34)5.2.2显示子程序设计 (35)5.2.3 P W M控制程序设计 (36)5.3 系统仿真 (36)5.4 Proteus的简单使用 (37)6 设计总结 (39)致谢 (40)参考文献 (41)附录1 程序清单 (42)附录2 系统总图 (50)绪论1.1 直流电机调速系统的发展直流电气传动系统中需要有专门的可控直流电源,常用的可控直流电源有以下几种: 第一,最初的直流调速系统是采用恒定的直流电压向直流电动机电枢供电,通过改变电枢回路中的电阻来实现调速。
基于单片机的直流电机调速系统的课程设计
一、总体设计概述本设计基于8051单片机为主控芯片,霍尔元件为测速元件, L298N为直流伺服电机的驱动芯片,利用 PWM调速方式控制直流电机转动的速度,同时可通过矩阵键盘控制电机的启动、加速、减速、反转、制动等操作,并由LCD显示速度的变化值。
二、直流电机调速原理根据直流电动机根据励磁方式不同,分为自励和它励两种类型,其机械特性曲线有所不同。
但是对于直流电动机的转速,总满足下式:式中U——电压;Ra——励磁绕组本身的内阻;——每极磁通(wb );Ce——电势常数;Ct——转矩常数。
由上式可知,直流电机的速度控制既可以采用电枢控制法也可以采用磁场控制法。
磁场控制法控制磁通,其控制功率虽然较小,但是低速时受到磁场和磁极饱和的限制,高速时受到换向火花和换向器结构强度的限制,而且由于励磁线圈电感较大,动态响应较差,所以在工业生产过程中常用的方法是电枢控制法。
电枢控制法在励磁电压不变的情况下,把控制电压信号加到电机的电枢上来控制电机的转速。
传统的改变电压方法是在电枢回路中串连一个电阻,通过调节电阻改变电枢电压,达到调速的目的,这种方法效率低,平滑度差,由于串联电阻上要消耗电功率,因而经济效益低,而且转速越慢,能耗越大。
随着电力电子的发展,出现了许多新的电枢电压控制法。
如:由交流电源供电,使用晶闸管整流器进行相控调压;脉宽调制(PWM)调压等。
调压调速法具有平滑度高、能耗低、精度高等优点,在工业生产中广泛使用,其中PWM应用更广泛。
脉宽调速利用一个固定的频率来控制电源的接通或断开,并通过改变一个周期内“接通”和“断开”时间的长短,即改变直流电机电枢上的电压的“占空比”来改变平均电.压的大小,从而控制电动机的转速,因此,PWM又被称为“开关驱动装置”。
如果电机始终接通电源是,电机转速最大为Vmax,占空比为D=t1/t,则电机的平均转速:Vd=Vmax*D,可见只要改变占空比D,就可以调整电机的速度。
平均转速Vd与占空比的函数曲线近似为直线。
单片机课程设计完整版《PWM直流电动机调速控制系统》
单片机原理及应用课程设计报告设计题目:学院:专业:班级:学号:学生姓名:指导教师:年月日目录设计题目 (3)1 设计要求及主要技术指标: (4)1.1 设计要求 (4)1.2 主要技术指标 (5)2 设计过程 (6)2.1 题目分析 (9)2.2 整体构思 (10)2.3 具体实现 (12)3 元件说明及相关计算 (14)3.1 元件说明 (14)3.2 相关计算 (15)4 调试过程 (16)4.1 调试过程 (16)4.2 遇到问题及解决措施 (20)5 心得体会 (21)参考文献 (22)附录一:电路原理图 (23)附录二:程序清单 (24)设计题目:PWM直流电机调速系统本文设计的PWM直流电机调速系统,主要由51单片机、电源、H桥驱动电路、LED液晶显示器、霍尔测速电路以及独立按键组成的电子产品。
电源采用78系列芯片实现+5V、+15V对电机的调速采用PWM波方式,PWM是脉冲宽度调制,通过51单片机改变占空比实现。
通过独立按键实现对电机的启停、调速、转向的人工控制,LED实现对测量数据(速度)的显示。
电机转速利用霍尔传感器检测输出方波,通过51单片机对1秒内的方波脉冲个数进行计数,计算出电机的速度,实现了直流电机的反馈控制。
关键词:直流电机调速;定时中断;电动机;PWM波形;LED显示器;51单片机1 设计要求及主要技术指标:基于MCS-51系列单片机AT89C52,设计一个单片机控制的直流电动机PWM 调速控制装置。
1.1 设计要求(1)在系统中扩展直流电动机控制驱动电路L298,驱动直流测速电动机。
(2)使用定时器产生可控的PWM波,通过按键改变PWM占空比,控制直流电动机的转速。
(3)设计一个4个按键的键盘。
K1:“启动/停止”。
K2:“正转/反转”。
K3:“加速”。
K4:“减速”。
(4)手动控制。
在键盘上设置两个按键----直流电动机加速和直流电动机减速键。
在手动状态下,每按一次键,电动机的转速按照约定的速率改变。
PIC单片机控制直流电机转速毕业设计
,a click to unlimited possibilities
汇报人:
目录 /目录
01
PIC单片机介 绍
02
直流电机介绍
03
PIC单片机控 制直流电机转 速的原理
04
系统实现
05
毕业设计总结 与展望
01 PIC单片机介绍
PIC单片机的特点
体积小,功耗低 速度快,处理能力强 集成度高,功能丰富 易于编程,开发周期短 应用广泛,适用于各种控制系统
按照结构分类:有刷直流电机、无刷直流 电机
按照用途分类:驱动直流电机、控制直流 电机、调速直流电机、伺服直流电机
按照转速分类:高速直流电机、低速直流 电机
按照功率分类:大功率直流电机、小功率 直流电机
按照控制方式分类:开环控制直流电机、 闭环控制直流电机
直流电机的应用
Байду номын сангаас
工业自动化: 用于控制生产 线、机械臂等
PIC单片机的作用: 通过控制电枢电 流的大小来控制 转速
调速方法:通过 改变电枢电压或 电枢电流来改变 转速
调速效果:可以 实现平滑、稳定 的调速效果
PIC单片机PWM输出控制直流电机转速
PIC单片机:一种 微控制器,用于控 制各种电子设备
PWM输出:一种 脉冲宽度调制技术, 用于控制直流电机 转速
软件编程与调试
调试工具:串口调试助手 编程环境:Keil uVision5 编程语言:C语言
程序结构:主程序、子程序、 中断服务程序
调试步骤:编译、链接、下 载、运行、调试
调试技巧:断点设置、单步 执行、变量观察、堆栈跟踪
系统测试与优化
单片机控制的直流电机正反转和加速减速C程序
单片机控制的直流电机正反转和加速减速C程序简介本文档旨在向读者介绍如何使用单片机控制直流电机实现正反转和加速减速功能的C程序。
程序实现正反转控制以下是控制直流电机正反转的C程序示例:include <avr/io.h>void motor_forward(){// 设置引脚控制直流电机正转}void motor_reverse(){// 设置引脚控制直流电机反转}int main(){// 初始化单片机引脚设置和其他必要的配置while (1){// 检测是否需要正转或反转,根据需要调用motor_forward()或motor_reverse()函数}return 0;}加速减速控制以下是控制直流电机加速减速的C程序示例:include <avr/io.h>void motor_speed_up(){// 调整引脚控制直流电机的占空比以加速电机转速}void motor_slow_down(){// 调整引脚控制直流电机的占空比以减速电机转速}int main(){// 初始化单片机引脚设置和其他必要的配置while (1){// 检测是否需要加速或减速,根据需要调用motor_speed_up()或motor_slow_down()函数}return 0;}结论通过上述示例程序,我们可以实现通过单片机控制直流电机的正反转和加速减速功能。
读者可以根据实际需求进行相应的参数调整和功能扩展。
请注意,上述示例程序仅为演示目的,具体的引脚配置和控制方式需根据实际硬件和单片机型号进行调整。
用单片机控制直流电机-终结版
用单片机控制直流电机摘要本设计以AT89C51单片机为核心,以4*4矩阵键盘做为输入达到控制直流电机的启停、速度和方向,完成了基本要求和发挥部分的要求。
在设计中,采用了PWM技术对电机进行控制,通过对占空比的计算达到精确调速的目的。
一、设计方案比较与分析:1、电机调速控制模块:方案一:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。
但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。
更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。
方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。
这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。
方案三:采用由达林顿管组成的H型PWM电路。
用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。
这种电路由于工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术。
兼于方案三调速特性优良、调整平滑、调速范围广、过载能力大,因此本设计采用方案三。
2、PWM调速工作方式:方案一:双极性工作制。
双极性工作制是在一个脉冲周期内,单片机两控制口各输出一个控制信号,两信号高低电平相反,两信号的高电平时差决定电动机的转向和转速。
方案二:单极性工作制。
单极性工作制是单片机控制口一端置低电平,另一端输出PWM信号,两口的输出切换和对PWM的占空比调节决定电动机的转向和转速。
由于单极性工作制电压波开中的交流成分比双极性工作制的小,其电流的最大波动也比双极性工作制的小,所以我们采用了单极性工作制。
3、PWM调脉宽方式:调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。
我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在采用单片机产生PWM脉冲的软件实现上比较方便。
运用AT89C51单片机控制直流电机
摘要本次课程设计基于AT89C51单片机为核心,利用天皇教仪三合一实验箱。
应用PWM技术对直流电机的速度进行精确调节,并测量出电动机的转速,通过模数转换系统,使用LCD液晶显示器精确的显示电动机的转速。
本次课程设计的目的是更加熟练掌握单片机的工作原理及实际应用,特别是单片机的编程语言,数模转换系统,PWM调节脉冲及LCD液晶显示器的工作原理。
关键字:51单片机;转速控制;模数转换;LCD液晶显示;目录1前言 (1)2 硬件部分的设计 (2)2.1硬件设计总体思路 (2)2.2单片机控制直流电机部分的硬件设计 (4)3 各硬件部分的连接与接口 (15)3.1 单片机与直流电机接口部分 (15)3.2单片机与LCD显示模块通信接口部分 (17)3.2各部分硬件结合原理及构造 (18)4 软件程序设计 (19)4.1系统软件设计的总体概述 (19)4.2系统各部分软件设计的思路 (22)5 系统的调试与现象分析 (24)6课设总结 (25)参考文献 (26)附录Ⅰ (27)附录Ⅱ (32)1前言近年来,随着科技的飞速发展,单片机的应用正在不断地走向深入。
在仪器仪表、家用电器和专用装备的智能化以及过程控制等方面,单片机都扮演着越来越重要的角色。
将单片机的应用引入实际科技实践必将对微电子控制技术的研究与实践注入强大活力。
本次设计研究的直流电机转速控制及转速的LCD显示实验装置即以单片机作为核心部件,它可完成对直流电机转速、方向的闭环控制,并应用LCD液晶显示装置显示出转速,本文重点论述该实验装置的硬件组成,软件设计以及控制方案的实施。
在早期,电子产品一般是纯硬件电路,没有使用单片机,电路复杂难以设计,也难以检查问题,随着微控制技术的不断完善和发展,集成芯片越来越多,单片机便出来了,换言之,单片机的应用是对传统控制技术的一场革命。
具有划时代的意义。
在电机控制方面也是靠人的感觉,没有侧速和侧距的概念,以前人机界面一般采用LED数码二极管,随着LCD液晶显示器的出现,人机界面更加人性化、智能化,它能显示数字、汉字和图象,控制LCD液晶显示器也很方便,电路设计也比较简单;加上单片机,组合实现的功能也比较强大,还可方便以后电路的升级与扩展。
51单片机控制直流电机设计
单片机控制小功率直流电机一. 设计要求:用单片机控制直流电机加速、减速、正反转和停止。
二. 设计方案分析1、方案设计:直流电机只要能提供一定的直流就可以转动,改变电压极性可以改变转动方向,可以通过给直流电机提供脉冲信号来驱动它,脉冲信号的占空比可以影响到直流电机的平均速度,因此可以通过调整占空比从而能实现调速的目的。
直流电机的驱动电路要有过流保护作用,可用二极管来实现,另外电机的驱动电流是比较大的所以需要用三极管来放大电流。
程序的关键就是如何实现占空比的调整,这个可以通过对51单片机定时器重装初值进行改变,从而改变时间。
设计中用到的元件:STC89C52、晶振(12MHz)、小按键、三极管、二极管、电容、电阻等。
2、背景知识介绍:直流电机调速原理本设计的主要思想为利用PWM控制占空比从而达到改变电机速度。
下面为PWM控制原理;图1为PWM降压斩波器的原理电路及输出电压波形。
在图1a中,假定晶体管V1先导通T1,秒(忽略V1的管压降,这期间电源电压Ud全部加到电枢上),然后关断T2秒(这期间电枢端电压为零)。
如此反复,则电枢端电压波形如图1b中所示。
电动机电枢端电压Ua为其平均值。
图1 PWM降压斩波器原理电路及输出电压波形a) 原理图 b)输出电压波形 1112a d d d T T U U U U T T Tα===+ (3) 式(3)中1112T T T T Tα==+ (4)α为一个周期T 中,晶体管V1导通时间的比率,称为负载率或占空比。
使用下面三种方法中的任何一种,都可以改变α的值,从而达到调压的目的:(1)定宽调频法:T1保持一定,使T2在0~∞范围内变化;(2)调宽调频法:T2保持一定,使T1在0~∞范围内变化(3)定频调宽法:T1+T2=T 保持一定,使T ,在0~T 范围内变化。
不管哪种方法,α的变化范围均为0≤α≤l ,因而电枢电压平均值Ua 的调节范围为0~Ud ,均为正值,即电动机只能在某一方向调速,称为不可逆调速。
单片机控制直流动机调速正反转
指导教师评定成绩:审定成绩:重庆邮电大学移通学院课程设计报告设计题目:单片机控制直流电动机调速和正反转学校:重庆邮电大学移通学院学生姓名:魏星玥专业:电气工程与自动化班级:05131101学号:0513110105指导教师:杨佳义设计时间:2013 年12 月重庆邮电大学移通学院目录综述 (3)一、直流电动机的工作原理 (4)二、直流电动机的结构 (5)三、直流电动机的分类 (6)四、电动机的机械特性 (7)五、他励直流电动机起动与调速 (8)六、直流电机H桥驱动电路 (14)七、PWM的控制技术 (19)八、直流电动机调速系统的设计 (21)九、设计结论····························十、心得体会····························参考文献·······························综述直流电动机是人类最早发明和应用的一种电机。
8位单片机控制直流电动机
用单片机控制直流电动机摘要本设计为单片机控制直流电动机,采用单极性可逆PWM驱动。
操作者由键盘控制电动机执行15种功能,并可由LED与电动机转速显示出控制效果。
在实现上,PWM调速采用定频调宽法,系统稳定性较好;电动机输入脉冲的电平转换采用双定时器中断实现,可节省CPU资源;键盘输入采用阵列式输入,用4*4的键盘形式,这样可以有效的减少对单片机I/O口的占用.关键词:PWM 定频调宽双定时器中断正文1.系统分析与论证●系统总体框图通过按动15个按键来实现对电动机的正反转,逐步加、减速与分档加减速控制。
●PWM调速方法的方案论证PWM调速原理如图1.1所示图1.1根据改变占空比方法的不同,PWM调速可分为以下三种:(1)定宽调频这种方法是保持T1不变,只改变T2,使周期也随之改变。
(2)调频调宽这种方法是保持T2不变,而改变T1,使周期也随之改变。
(3)定频调宽这种方法是保持周期T不变,而同时改变T1和T2。
前两种方案由于在调速时改变了脉冲频率,故当控制脉冲频率与系统固有频率接近时,将会引起振荡,因此采用定频调宽。
●PWM控制信号的产生方案论证PWM控制信号的产生方法有四种,分述如下:(1)分立电子元件组成的PWM信号发生器这种方法是用分立的逻辑电子元件组成PWM信号电路。
此方法优点是不用软件设计,但硬件较为庞大。
(2)软件模拟法这种方法是利用单片机的I/O引脚,通过软件对该引脚不断输出高低电平来实现PWM信号输入。
此种方法虽然要占用CPU,但硬件大为减少。
(3)专用PWM集成电路此种芯片的使用可减轻单片机负担,硬件电路也不大。
(4)单片机的PWM口新一代的单片机可通过初始化设置,使其自动发出PWM脉冲波,只有在改变占空比时CPU才进行干预。
后两种是目前PWM信号获得的主流方案,但考虑到本系统较小,单片机的CPU资源亦未得到充分利用,故采用第二种方案●软件中改变PWM占空比的方案论证(1)软件延时高电平与低电平的持续时间由软件延时,延时时间由寄存在两个寄存器中的数据来控制。
单片机控制直流电机并测速(电压AD、DA转换以及pwm按键调速正转反转)
单片机原理及应用课程设计报告书题目:用单片机控制直流电动机并测量转速姓名:徐银浩学号:1110702225专业:电子信息工程指导老师:沈兆军设计时间:2014年 11月信息工程学院目录1. 引言 01.1 设计意义 01.2 系统功能要求 02. 方案设计 03. 硬件设计 (2)3.1 AT89C51最小系统 (3)3.2 按键电路 (4)3.3 A/D转换模块 (4)3.4. D/A转换模块 (6)3.5 电机转速测量电路 (7)3.6 显示电路 (8)3.7 总电路图 (10)4. 软件设计 (101)4.1 系统主程序设计 (12)4.2 按键扫描程序设计 (12)4.3 显示子程序 (12)4.4 定时中断处理程序 (12)4.5 A/D转换程序 (13)5. 系统调试 (14)6. 设计总结 (16)7. 参考文献 (17)8. 附录A;源程序 (18)9. 附录B;电路原理总图、作品实物图片 (23)用单片机控制直流电动机并测量转速1 引言1.1. 设计意义电动机作为最主要的动力源,在生产和生活中占有重要地位。
电动机的调速控制过去多用模拟法,随着计算机的产生和发展以及新型电力电子功率器件的不断涌现,电动机的控制也发生了深刻的变化,本系统利用直流电机的速度与施加电压成正比的原理,通过滑动变阻器向ADC0809输入控制电压信号,经AD后,输入到AT89C51中,AT89C51将此信号转发给DAC0832,通过功放电路放大后,驱动直流电机。
1.2.系统功能要求单片机扩展有A/D转换芯片ADC0809和D/A转换芯片DAC0832。
通过改变A/D输入端可变电阻来改变A/D的输入电压,D/A输入检测量大小,进而改变直流电动机的转速。
手动扩展。
在键盘上设置两个按键——直流电动机加速键和直流电动机减速减。
在手动状态下,每按一次键,电动机的转速按照约定的速率改变。
用显示器LED或LCD显示数码移动的速度,及时形象地跟踪直流电动机转速的变化情况。
单片机驱动直流电机正反转程序
(1)主程序main.c#include<reg51.h>#include"ds1302.h"sbit Xianwei1=P1^0;sbit Xianwei2=P1^1;sbitMotor_A=P1^2;sbitMotor_B=P1^3;sbitMotor_EN=P1^4;unsigned char Num=0;unsigned intdisp[8]={0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f};/*//---存储顺序是秒分时日月周年,存储格式是用BCD码---//uchar TIME[7] = {0, 0, 0x12, 0x01, 0x01, 0x02, 0x13};*/void main(){uchar state=0;Motor_A=1;Motor_B=1;Motor_EN=0;Ds1302Init();while(1){Ds1302ReadTime();if((TIME[2]==0x06)&&(TIME[1])==0) //06:00{state++;if(state>2)state=1;}if(state==1){while(Xianwei1!=0){Motor_A=1; //正转Motor_B=0;Motor_EN=1;}}if(state==2){while(Xianwei2!=0){Motor_A=0; //反转Motor_B=1;Motor_EN=1;}}}}(2)ds1302.h#ifndef __DS1302_H_#define __DS1302_H_//---包含头文件---//#include<reg51.h>#include<intrins.h>//---重定义关键词---//#ifndefuchar#define uchar unsigned char#endif#ifndefuint#define uint unsigned int#endif//---定义ds1302使用的IO口---//sbit DSIO=P3^4;sbit RST=P3^5;sbit SCLK=P3^6;//---定义全局函数---//void Ds1302Write(ucharaddr, uchardat); uchar Ds1302Read(ucharaddr);void Ds1302Init();void Ds1302ReadTime();//---加入全局变量--//extern uchar TIME[7]; //加入全局变量(3)ds1302.c#include"ds1302.h"//---DS1302写入和读取时分秒的地址命令---////---秒分时日月周年最低位读写位;-------//uchar code READ_RTC_ADDR[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d}; uchar code WRITE_RTC_ADDR[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c};//---DS1302时钟初始化2013年1月1日星期二12点00分00秒。
L298N控制直流电机正反转
98推 介Design L298N控制直流电机正反转文/张天鹏 徐磊 北京林业大学工学院摘要:在分析了直流电机驱动芯片 L298N 的性能、结构的基础上,结合 SPCE061A EMU BOARD单片机(61板),介绍实现驱动直流电机的转正反一种简单方法.文中给出了控制原理图,还给出来了控制直流电机正反转驱动程序。
实际测试表明,利用该方法设计的直流电机驱动系统具有硬件结构简单、软件编程容易。
关键词:直流电机 单片机 L298N一、背景介绍(一)预备知识1.熟悉凌阳单片机的工作原理。
2.熟悉键盘扫描原理和L298n驱动电机原理。
3.熟悉汇编语言及C语言。
(二)直流电机控制原理对于普通直流电机,其控制方法比较简单,只需给电机的两根控制线加上适当的电压即可使电机转动起来,电压越高则电机转速越高。
对于直流电机的速度调节,可以采用改变电压的方法,也可采用PWM调速方法。
PWM调速就是使加在直流电机两端的电压为方波形式,加在电机两端的电压就在VLoad和0V之间不停的跳变,对应的电机电压波形如图 1 所示:图1 PWM调速原理图此时加在电机两端的平均电压Uo=Th/(Th+Tl)*VLoad,可以通过调整PWM的占空比来改变Th和Tl的比值。
这样就可以通过PWM调节加在电机两端的平均电压,从而改变电机的转速。
与步进电机类似,不能将单片机的I/O直接与直流电机的引线相接,而要在二者之间增加驱动电路。
也可利用L298N电机驱动芯片实现直流电机驱动(注:我们小组在本次试验中采用L298N芯片驱动直流电机正反转)。
(三)L298N芯片资料恒压恒流桥式2A驱动芯片L298N:L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。
可以方便的驱动两个直流电机,或一个两相步进电机。
L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V ,可以直接通过电源来调节输出电压;可以直接用单片机的I O口提供信号;而且电路简单,使用比较方便。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录第1章总体设计方案 (1)1.1 总体设计方案 (1)1.2 软硬件功能分析 (1)第2章硬件电路设计 (2)2.1 单片机最小系统电路设计 (2)2.2直流电机驱动电路设计 (2)2.3 数码管显示电路设计 (4)2.4 独立按键电路设计 (5)2.5 系统供电电源电路设计 (5)2.5.1直流稳压电路中整流二极管的选取: (6)2.5.2直流稳压电路中滤波电容的选取: (6)第3章系统软件设计 (7)3.1 软件总体设计思路 (7)3.2 主程序流程设计 (7)附录1 总体电路图 (10)附录2 实物照片 (11)附录3 C语言源程序 (12)第1章总体设计方案1.1 总体设计方案早期直流传动的控制系统采用模拟分离器件构成,由于模拟器件有其固有的缺点,如存在温漂、零漂电压,构成系统的器件较多,使得模拟直流传动系统的控制精度及可靠性较低。
随着计算机控制技术的发展,微处理器已经广泛使用于直流传动系统,实现了全数字化控制。
由于微处理器以数字信号工作,控制手段灵活方便,抗干扰能力强。
所以,全数字直流调速控制精度、可靠性和稳定性比模拟直流调速系统大大提高。
所以,本次实习采用了驱动芯片来驱动直流电机,并运用单片机编程控制加以实现。
系统设计采用驱动芯片来控制的,所以控制精度和可靠性有了大幅度的提高,并且驱动芯片具有集成度高、功能完善的特点,从而极的大简化了硬件电路的设计。
图1.1 直流电机定时正反转方案1.2 软硬件功能分析本次实习直流电机控制系统以STC89C52单片机为控制核心,由按键输入模块、LED显示模块及电机驱动模块组成。
采用带中断的独立式键盘作为命令的输入,单片机在程序控制下,定时不断给L293D直流电机驱动芯片发送PWM波形,H型驱动电路完成电机正,反转控制;同时单片机不停的将变化的定时时间送到LED数码管完成实时显示。
第2章硬件电路设计2.1 单片机最小系统电路设计单片机最小系统设计是单片机应用系统设计的基础。
STC89C52单片机最小系统电路如图2.1所示。
图2.1 单片机最小系统2.2直流电机驱动电路设计图2.2 直流电机驱动电路L293D是提供双向驱动电流高达1 A,电压是从4.5 V至36 V的;L293D提供双向驱动电流高达600毫安,电压是从4.5 V至36 V的。
两个设备是专为驱动等感性负载继电器,电磁阀,直流双极步进和马达,也可以给其他高电流/高电压提供电源负载。
兼容所有的TTL输入。
每个输出都是推拉式驱动电路,与达林顿三极管和伪达林源。
启用1,2 EN驱动器和3,4 EN驱动器。
当使能输入为高电平时,相关联的驱动器被启用和他们的输出处于活动状态,并在其输入端的同相。
当使能输入为低,这些驱动器被禁用其输出关闭,在高阻抗状态。
【PS:1,2EN为1和2的使能端(高电平使能);3,4EN同理】用适当的数据输入端,每对驱动程序的形式一个完整的H 桥可逆驱动器适用于电磁阀或电机应用。
L293D外部输出为高速钳位二极管,应使用电感的瞬态抑制。
VCC1和VCC2分开,提供逻辑输入,以尽量减少设备功耗。
L293D的工作温度是从0°C至70°C图2.3 L293D外部引脚排列图表2.1 真值表图2.4 逻辑图电机驱动电路组要是由L293D芯片组成,单片机P3.4,P3.6,P3.7输出的信号经过L293D芯片后直接与直流电机相连,从而控制直流电机的运行。
其中VCC1接+5V 电源,VCC2接+12V电源。
2.3 数码管显示电路设计本设计利用数码管作为显示单元,采用动态显示技术,电路如图2.5所示。
图2.5 显示电路电路的接法决定了必须采用逐位扫描显示方式。
即从段选口送出某位LED的字型码,然后选通该位LED,并保持一段延时时间。
然后选通下一位,直到所有位扫描完。
2.4 独立按键电路设计独立式键盘的按键相互独立,每个按键接一根I/O口线,一根I/O口线上的按键工作状态不会影响其它I/O口线的工作状态。
因此,通过检测I/O口线的电平状态,即可判断键盘上哪个键被按下。
图2.6 独立按键电路2.5 系统供电电源电路设计本系统需要采用+5V电源和+12V电源,所采用的电源电路是由整流电路和三端稳压器组成的。
电路输出电压和最大输出电流决定于所选三端稳压器。
其电源电路如图2.7所示。
图2.7 +5V和+12V电源供电电路t)td(πU 0(AV)ωωπsin 2120U ⎰=20(AV)0.9U U2π22U ≈=L2L (AV)(AV)R 0.45U R Uo Io ≈=22max U U R =221.12)(1.1U R AV Io I LF π=>。
时,~当2O(AV)L 2.12)53(U U R T C ≈=⇒)12(-)22(-)32(-)42(-)52(-)62(-)72(-2.5.1直流稳压电路中整流二极管的选取:其中2U 为副边电压 解得 实现了全波整流电路,他将2U 的由于整流桥电路负半周也利用起来,所以在变压器副边电压有效值相同的情况下,输出电压的平均值是半波整流电路的两倍。
输出电流的平均值(即负载电阻中的电流平均值)L 2L (AV)(AV)R 0.9U R Uo Io ≈= 在单相桥式整流电路中,因为每只二极管只在变压器副边电压的半个周期通过电流,所以每只二极管的平均电流只有负载电阻上的电流的平均值的一半,即与半波整流电路中的平均电流相同。
二极管所能承受的最大反向电压考虑到电网电压的波动范围为%10±,在实际选用二极管时,应至少有%10的余量,选择最大整流电流F I 和最高反向工作电压RM U 分别为221.1U U RM > 2.5.2直流稳压电路中滤波电容的选取:L(AV)O(AV)L I U R = O (A V )U :输出电压的平均值L(AV)I :负载电流的平均值 由于采用电解电容,考虑到电网电压的波动范围为%10±,点解电容的耐压值应大于221.1U 。
L2R T 5)~(3C =第3章系统软件设计3.1 软件总体设计思路经过前几章的设计工作,系统的硬件电路设计已经完成了。
然而,对于一个完整的设计系统来说,只有硬件电路的设计完成是不够的,它必须通过软件编程来实现系统工作的控制功能,从而才能实现电路应有的系统功能。
单片机系统的软件设计主要使用汇编语言或高级语言。
汇编语言与系统硬件的关系密切,可方便地实现诸如中断管理以及模拟/数字量的输入/输出等功能,具有占用系统资源小、执行速度快的特点,但是,对复杂的大型应用系统,其代码可读性差,并不利于升级和维护。
高级语言的代码效率和长度都不如汇编语言,但其结构清晰、可读性好、开发周期短、有极强的可移植性,在多数应用方面执行效率与汇编语言的差距也不大,近年来得到了极为广泛的应用。
而C语言既有高级语言的各种特点,又可对硬件进行操作,并可进行结构化程序设计。
用C语言编写的程序较容易移植,可生成简洁、可靠的目标代码,用C语言进行单片机计算机开发已经是必然的发展趋势。
本设计的整体思路为:主程序中循环的调用按键程序,通过按键从而使单片机输出变化的定时时间和控制电机正反转,从而控制直流电机达到不同的旋转效果,并通过数码管将变化的定时时间显示出来。
本设计以单片机作为系统的核心控制单元,运用C语言进行编程工作,按照工作流程来实现设计要求的控制直流电机的运行状态。
3.2 主程序流程设计直接应用STC89C52的软件方法实现电机驱动和定时时间的设置与变化。
其流程图如图3.1所示。
开始时打开电源开关对电路供电,完成系统初始化和显示初始化,数码管显示0059,倒计时开始,按键循环扫描,设置键按下,倒计时停止,由加减键控制定时时间,确定键按下,进入中断,倒计时开始,电机启动,结束时,电机停止,显示恢复初始化。
图3.1 系统主单片机总程序框图实习总结附录1 总体电路图附录2 实物照片附录3 C语言源程序#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit MOTOR_A2 = P3^6;sbit MOTOR_A1 = P3^7;sbit EN_MOTOR_A = P3^4 ;//uchar code segcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar code segcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0,1,2,3,4,5,6,7,8,9,//uchar code dispbit[]={0x0e,0x0d,0x0b,0x07};uchar code dispbit[]={0xef,0xdf,0xbf,0x7f};//数码管位选位uchar buffer[]={0,0,0,0};uint min=59,sec=59;uint status=0;//函数声明void delayMS(uint t) ;void keyprocess(uchar key);void display();void timer0();void MotorStart();void delayS(uint b);main(){bit keyrelease;uchar buf;uchar keyinput;keyrelease=1;buf=0xff;TMOD=0x01; //T0工作在方式1,16位计数器TH0=0xFC; //定时器0设置延时1ms中断初始值TL0=0x18;TR0=1;IE=0x82; //开定时器0中断status=0;while(1) //键扫描程序{keyinput=P1&0x0f;if(keyinput!=0x0f){delayMS(10);if(keyinput!=0x0f){buf=keyinput;P1=0xff;while(P1!=0xff)P1=0xff;keyprocess(buf); //调用按键处理函数buf=0xff;}}display();}}//延时程序void delayMS(uint t) //晶振频率12MHZ{uint i;while(t--)for(i=0;i<125;i++);}//按键处理函数void keyprocess(unsigned char key) //键值处理,正常计时,设置时分秒{switch (key){case 0x0e:status++; //按下设置键TR0=0;if (status>=3) status = 0;break;case 0x0d:switch(status) //按下加1键,3种模式下加1{case 0x01:if(min<59) min++;else min=0;break;case 0x02:if(sec<59) sec++;else sec=0;break;}break;case 0x0b:switch(status) //按下减1键{case 0x01:if(min>0) min--;else min=59;break;case 0x02:if(sec>0) sec--;else sec=59;break;}break;case 0x07: TR0=1;MotorStart();default:break;}}//数码管显示函数void display(){uchar i; //正常计时显示{buffer[0]=min/10; // 显示分的十位buffer[1]=min%10; // 显示分的个位buffer[2]=sec/10; // 显示秒的十位buffer[3]=sec%10; // 显示秒的个位for(i=0;i<4;i++){P0=segcode[buffer[i]];P2=dispbit[i];delayMS(1); //防止数码管显示的时候闪动P2=0xff;}}}//定时器0中断函数void timer0() interrupt 1 using 2 //T0中断服务函数,第二组工作寄存器{static uint count;TH0=0xFC; // 定时器0设置初始值1ms中断初始值TL0=0x18;TR0=1;count++; //正常计时if(count>=1000) // 定时1S 到,以下为时钟的正常走钟逻辑{count=0;sec--;if(sec==0){sec=59;min--;if(min==0&&sec==0){P2=0xff;}}}}void MotorStart(){EN_MOTOR_A = 1;MOTOR_A2 = 1;MOTOR_A1 = 0;delayS(60);EN_MOTOR_A = 0;delayS(60);EN_MOTOR_A = 1;MOTOR_A2 = 0;MOTOR_A1 = 1;delayS(60);}void delayS(uint b) //晶振频率12MHZ {uint j;while(b--)for(j=0;j<2000;j++);}。