基于单片机的直流电机控制(正反转、开关控制)

合集下载

L298N控制直流电机正反转

L298N控制直流电机正反转

L298N控制直流电机正反转一、概述在现代工业自动化和机械设备中,直流电机因其控制简单、响应迅速等特点而被广泛应用。

直流电机的控制并非一件简单的事情,特别是要实现其正反转功能,就需要一种可靠的电机驱动器。

L298N是一款常用的电机驱动器模块,它基于H桥驱动电路,可以有效地控制直流电机的正反转,并且具备过载保护和使能控制功能,使得电机控制更为安全、可靠。

L298N模块内部集成了两个H桥驱动电路,可以同时驱动两个直流电机,且每个电机的驱动电流可达2A,使得它适用于驱动大多数中小型的直流电机。

L298N模块的控制逻辑简单明了,只需通过控制其输入逻辑电平,即可实现电机的正反转、停止等功能。

掌握L298N 模块的使用方法,对于熟悉和掌握直流电机的控制具有重要的意义。

在接下来的内容中,我们将详细介绍L298N模块的工作原理、控制逻辑、驱动电路连接方法以及在实际应用中的使用技巧,以帮助读者更好地理解和应用L298N模块,实现直流电机的正反转控制。

1. 简述直流电机在工业和生活中的重要性直流电机,作为一种重要的电能转换和传动设备,在工业和生活中发挥着至关重要的作用。

它们广泛应用于各种机械设备中,成为驱动各种工业设备和家用电器运行的核心动力源。

在工业领域,直流电机的重要性无可替代。

它们被广泛应用于各种生产线上的机械设备,如机床、泵、风机、压缩机、传送带等。

这些设备需要稳定、可靠的动力源来驱动,而直流电机正好满足这些需求。

它们具有高效、稳定、易于控制等优点,能够实现精确的速度和位置控制,从而提高生产效率和产品质量。

直流电机还在交通运输领域发挥着重要作用。

例如,电动汽车、电动火车、无人机等新型交通工具都采用了直流电机作为动力源。

这些交通工具需要高效、环保的动力系统来驱动,而直流电机正是满足这些需求的理想选择。

在生活中,直流电机也无处不在。

它们被广泛应用于各种家用电器中,如电扇、吸尘器、洗衣机、冰箱、空调等。

这些家电需要稳定、可靠的动力源来运行,而直流电机正是这些家电的核心动力源。

基于单片机STC89C52的直流电机PWM调速控制系统

基于单片机STC89C52的直流电机PWM调速控制系统

第一章:前言Pwm 电机调速原理对于电机的转速调整,我们是采用脉宽调制(PWM)办法,控制电机的时候,电源并非连续地向电机供电,而是在一个特定的频率下以方波脉冲的形式提供电能。

不同占空比的方波信号能对电机起到调速作用,这是因为电机实际上是一个大电感,它有阻碍输入电流和电压突变的能力,因此脉冲输入信号被平均分配到作用时间上,这样,改变在始能端EN1 和EN2 上输入方波的占空比就能改变加在电机两端的电压大小,从而改变了转速。

此电路中用微处理机来实现脉宽调制,通常的方法有两种:(1)用软件方式来实现,即通过执行软件延时循环程序交替改变端口某个二进制位输出逻辑状态来产生脉宽调制信号,设置不同的延时时间得到不同的占空比。

(2)硬件实验自动产生PWM 信号,不占用CPU 处理的时间。

这就要用到STC89C52的在PWM模式下的计数器1,具体内容可参考相关书籍。

51 单片机PWM 程序产生两个PWM,要求两个PWM 波形占空都为80/256,两个波形之间要错开,不能同时为高电平!高电平之间相差48/256,PWM 这个功能在PIC 单片机上就有,但是如果你就要用51 单片机的话,也是可以的,但是比较的麻烦.可以用定时器T0来控制频率,定时器T1 来控制占空比:大致的的编程思路是这样的:T0 定时器中断是让一个I0口输出高电平,在这个定时器T0的中断当中起动定时器T1,而这个T1 是让IO 口输出低电平,这样改变定时器T0 的初值就可以改变频率,改变定时器T1 的初值就可以改变占空比。

前言:直流电机的定义:将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。

近年来,随着科技的进步,直流电机得到了越来越广泛的应用,直流具有优良的调速特性,调速平滑,方便,调速范围广,过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速起动、制动和反转,需要满足生产过程自动化系统各种不同的特殊要求,从而对直流电机提出了较高的要求,改变电枢回路电阻调速、改变电压调速等技术已远远不能满足现代科技的要求,这是通过 PWM 方式控制直流电机调速的方法就应运而生。

基于单片机的机械手关节直流电机控制电路

基于单片机的机械手关节直流电机控制电路

课程名称专业综合课程设计院(系)专业班级课程设计题目基于单片机的机械手关节直流电机控制电路课程设计时间:课程设计的内容及要求:利用单片机、电路板开发基于单片机的机械手关节直流电机控制电路,实现机械手关节直流电机控制电路,使直流电机对一个机械手壁关节的启、停、正转、反转控制。

具体要求如下:(1)按以上要求制定设计方案,并绘制出系统工作框图及程序流程图;(2)按要求设计单片机的外围电路,给出电路原理图;(3)编写主要程序;(4)用protus进行仿真,给出仿真电路图;(5)单片机仿真器、电路板、电源等硬件正确可靠地连接;(6)按键控制直流电机进行正反转,使机械手关节活动;指导教师年月日负责教师年月日学生签字年月日目录0前言 (1)1总体设计方案 (1)2.硬件电路设计 (2)2.1单片机系统 (2)2. 2独立按键 (3)2.3 电机驱动 (4)3.软件设计 (6)3.1 按键子程序设计 (8)3.2调速子程序设计 (9)4调试分析 (10)5.结论及进一步设想 (11)参考文献 (11)课设体会 (12)附录1 电路原理图 (13)附录2 元件清单 (14)附录3 程序清单 (15)基于单片机的机械手关节直流电机控制电路摘要:本文设计了由单片机控制的机械手关节直流电机,由单片机、电机驱动芯片、机械手直流电机、控制电机的(正转、反转、启停、调速)键盘组成,主要使用了AT89C52、L298、直流电机主要器件,主要解决方案是利用单片机最小系统设计一个由按键控制的直流电机的在转动来控制机械手关节的运动。

关键字:单片机;直流电机;控制电路。

0前言着我们工业自动化水平的不断提高,在机械加工和机械制造领域,以及各种装配与包装自动化生长线上,机械手的应用以相当普遍。

机械手通常担任着上料,下料等加工任务。

由于PLC顺序控制具有系统简单,可靠,控制灵活方便等特点,而且从PLC诞生之日起,其最基本,最普遍的应用领域就是在工业环境下的顺序控制。

基于51单片机红外遥控电机课程设计说明书

基于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与占空比的函数曲线近似为直线。

基于单片机的直流电机远程智能监控系统设计

基于单片机的直流电机远程智能监控系统设计

基于单片机的直流电机远程智能监控系统设计王冬梅;侯春辉;路敬祎;翟颖;安佳轩【摘要】本文深入研究了电机调速系统,以单片机为控制器设计了直流电机远程智能监控系统,该系统由电机驱动模块、按键控制模块、光电测速模块、显示模块、报警模块以及GPRS模块等组成。

该系统能够实现对直流电机的开关控制、调速控制、正反转控制、报警、实时显示以及通过GPRS模块远程实时监控等功能。

%This paper studied the motor speed control system,using single chip as the controller and designed the remote intelligent monitoring system of DC motor.The system is composed of the motor drive module, the key control module, photo electric velocity measurement module, display module, alarm module and GPRS module etc.The system can switch to realize the control of DC motor, speed control, positive control, inversion xontrol, alarm function,real time display, through the GPRS module of remote real time monitoring functions.【期刊名称】《电子设计工程》【年(卷),期】2015(000)019【总页数】3页(P21-23)【关键词】直流电动机;脉冲宽度调制;单片机;GPRS【作者】王冬梅;侯春辉;路敬祎;翟颖;安佳轩【作者单位】东北石油大学电气信息工程学院,黑龙江大庆 163318;中国石油大庆油田有限责任公司,黑龙江大庆 163000;东北石油大学电气信息工程学院,黑龙江大庆 163318;东北石油大学电气信息工程学院,黑龙江大庆 163318;东北石油大学电气信息工程学院,黑龙江大庆 163318【正文语种】中文【中图分类】TN98随着现代化步伐的迈进,人们对自动化的需求越来越高,使电动机的复杂控制变成主流;直流电动机由其具有良好的起动、制动性能,宜于在大范围内平滑调速性能,在许多需要调速或快速正反向的电力拖动领域中得到了广泛的应用[1-2]。

基于51单片机的直流电机PWM调速系统

基于51单片机的直流电机PWM调速系统

DOI:10.16660/ki.1674-098X.2018.13.108基于51单片机的直流电机PWM调速系统吴一平(浙江农林大学工程学院 浙江杭州 311300)摘 要:本文介绍了以单片机STC89C51和L298控制的直流电机PWM (脉宽调制)调速系统,主要介绍了用单片机软件实现PWM调整电机转速的基本原理及选择。

硬件电路实现了对电机的正转、反转、快速停止、加速,停止的控制。

软件电路给出了主程序、子程序流程图以及Proteus的仿真结果。

关键词:单片机STC89C51 脉宽调制 直流电机中图分类号:TN710 文献标识码:A 文章编号:1674-098X(2018)05(a)-0108-02直流电动机是将直流电能转换为机械能的电动机,相比其他类型电动机具有更好的调速性能,因此,直流电动机在工农业中被广泛应用。

本文对基于单片机STC89C51的直流电机PWM调速系统进行介绍,以期实现直流电机最优化方案。

1 直流电机PWM调速选择及原理直流电动机的调速方法有改变改变磁通量、改变电枢回路串联电阻以及改变电枢电压三种。

在电枢回路串联电阻,调速范围不大并且铜耗大,不经济。

弱磁调速中当磁通量Φ在低速时受磁极饱和限制,在高速时受换向器结构强度和换向火花的限制,而且由于励磁圈电感较大,动态响应较差,因此采用改变电枢电压的调速方法。

PWM(Pulse Width Modulation),全称为脉冲宽度调制,可以改变电枢电压值。

PWM的优点是精度高,易于控制,运行稳定。

PWM调速方法有三种,分别为定频调宽法、调宽调频法和定频调宽法。

前两种方法在调速时会改变控制脉冲的频率,而控制脉冲的频率与系统固有频率接近时会引起震荡,因此本文选用定频调宽法。

调速原理计算如下:占空比,D=t1t1+t2=t1T式中,T为电压变化周期;t1为一个周期内高电平持续时间;t2为一个周期内低电平持续时间;电机电压平均值U=DU0,式中,U0为总电压。

基于C51单片机的直流电机PWM调速控制(包含原理图及C源代码)

基于C51单片机的直流电机PWM调速控制(包含原理图及C源代码)

基于C51单片机的直流电机PWM调速控制--SQ这是最近一阶段自己学习所获,现分享与大家。

这里采用A T89C52单片机做主控制芯片,实现两路直流电机的PWM调速控制,另外还可以实现转向、显示运行时间、显示档位等注:考虑小直流电机自身因素,调速范围仅设有四级电路原理图:C语言程序源代码:/******************** 硬件资源分配*********************/数码管:显示电机状态(启停、正反、速度)、运行时间、是否转弯按键:K4 启动/暂停K3 正反转/转弯允许K2 加速/左转/运行时间清零K1 减速/右转/停止定时器:T0 数码管动态显示,输出PWMT1 运行时间记录********************************************************//*******主程序文件PWM.c******/#include <reg52.h>#include "Afx.h"#include "Config.c"#define CIRCLE 5 //脉冲周期//按键定义uchar key,key_tmp=0, _key_tmp=0;//显示定义uchar LedState=0xF0; //LED显示标志,0xF0不显示,Ox00显示uchar code LED_code_d[4]={0xe0,0xd0,0xb0,0x70}; //分别选通1、2、3、4位uchar dispbuf[4]={0,0,0,0}; //待显示数组uchar dispbitcnt=0; //选通、显示的位uchar mstcnt=0;uchar Centi_s=0,Sec=0,Min=0; //分、秒、1%秒//程序运行状态标志bit MotState=0; //电机启停标志bit DirState=0; //方向标志0前,1后uchar State1=-1;uchar State2=-1;uchar State3=0;uchar State4=-1;uchar LSpeed=0;uchar RSpeed=0;//其他uint RunTime=0;uint RTime_cnt=0;uint LWidth;uint RWidth; //脉宽uint Widcnt=1;uint Dispcnt;//函数声明void key_scan(void);void DisBuf(void);void K4(void);void K3(void);void K2(void);void K1(void);void disp( uchar H, uchar n );void main(void){P1|=0xF0;EA=1;ET0=1;ET1=1;TMOD=0x11;TH0=0xFC;TL0=0x66; //T0,1ms定时初值TH1=0xDB;TL1=0xFF; //T1,10ms定时初值TR0=1;Widcnt=1;while(1){key_scan();switch(key){case 0x80: K1(); break;case 0x40: K2(); break;case 0x20: K3(); break;case 0x10: K4(); break;default:break;}key=0;DisBuf();LWidth=LSpeed;RWidth=RSpeed;}}//按键扫描**模拟触发器防抖void key_scan(void){key_tmp=(~P3)&0xf0;if(key_tmp&&!_key_tmp) //有键按下{key=(~P3)&0xf0;}_key_tmp=key_tmp ;}//按键功能处理/逻辑控制void K4(void){if(State4==-1){State4=1;TR1=1;dispbuf[3]=1;LedState=0x00; //打开LEDMotState=1; //打开电机LSpeed=1;RSpeed=1; //初速设为1}else if(State4==1){State4=0;TR1=0;MotState=0; //关闭电机}else if(State4==0){MotState=1;if(State3==0){State4=1;TR1=1;}else if(State3==1){LSpeed=2;RSpeed=2;}}}void K3(void){if(State4==1)DirState=!DirState;if(State4==0){if(State3==0){State3=1; //可以转向标志1可以,0不可以TR1=1;dispbuf[3]=9;MotState=1;LSpeed=2;RSpeed=2;}else if(State3==1){State3=0;TR1=0;dispbuf[3]=0;MotState=0;}}}void K2(void){if(State4==1&&LSpeed<4&&RSpeed<4){LSpeed++;RSpeed++;}else if(State4==0){if(State3==0){//State4=-1;//LedState=0xF0;MotState=0;Sec=0;Min=0;}else if(State3==1&&LSpeed<4&&RSpeed<4){//TurnState=0;LSpeed=2;RSpeed++;}}}void K1(void){if(State4==1&&LSpeed>1&&RSpeed>1){LSpeed--;RSpeed--;}else if(State4==0){if(State3==0){State4=-1;LedState=0xF0;MotState=0;}else if(State3==1&&LSpeed<4&&RSpeed<4){//TurnState=1;LSpeed++;RSpeed=2;}}}//显示预处理void DisBuf(void){if(RTime_cnt==100){Sec++;RTime_cnt=0;}if(Sec==60){Min++;Sec=0;}if(State4==1){dispbuf[0]=Sec%10;dispbuf[1]=Sec/10;dispbuf[2]=Min;if(!DirState) //正转dispbuf[3]=LSpeed;if(DirState) //反转dispbuf[3]=LSpeed+4;}if(State4==0){if(State3==0){dispbuf[0]=Sec%10;dispbuf[1]=Sec/10;dispbuf[2]=Min;dispbuf[3]=0;}if(State3==1){dispbuf[0]=RSpeed;dispbuf[1]=LSpeed;dispbuf[2]=Min;dispbuf[3]=9;}}}//LED驱动void disp( uchar H, uchar n ){P1=n;P1|=LedState ;P1|=LED_code_d[H];}//T0中断**显示/方波输出void Time_0() interrupt 1{TH0=0xFC;TL0=0x66;Widcnt++;Dispcnt++;//电机驱动/方波输出if(Widcnt>CIRCLE){Widcnt=1;}if(Widcnt<=LWidth)LMot_P=!DirState&&MotState;elseLMot_P=DirState&&MotState;LMot_M=DirState&&MotState;if(Widcnt<=RWidth)RMot_P=!DirState&&MotState;elseRMot_P=DirState&&MotState;RMot_M=DirState&&MotState;//显示if(Dispcnt==5){disp(dispbitcnt,dispbuf[dispbitcnt]);dispbitcnt++;if(dispbitcnt==4){dispbitcnt=0;}Dispcnt=0;}}//T1中断**运行时间void Time_1() interrupt 3{TH1=0xDB;TL1=0xFF;RTime_cnt++;}/******配置文件Afx.h******/#ifndef _AFX_#define _AFX_typedef unsigned char uchar;typedef unsigned int uint;typedef unsigned long ulong;#endif/******IO配置文件Config.c******/#ifndef _Config_#define _Config_#include "Afx.h"#include <reg52.h>//显示定义sbit led=P3^2;//电机引脚定义sbit LMot_P=P2^2; sbit LMot_M=P2^3; sbit RMot_P=P2^0; sbit RMot_M=P2^1;#endif。

单片机控制的直流电机正反转和加速减速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;}结论通过上述示例程序,我们可以实现通过单片机控制直流电机的正反转和加速减速功能。

读者可以根据实际需求进行相应的参数调整和功能扩展。

请注意,上述示例程序仅为演示目的,具体的引脚配置和控制方式需根据实际硬件和单片机型号进行调整。

51单片机控制直流电机设计

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 ,均为正值,即电动机只能在某一方向调速,称为不可逆调速。

基于单片机的机械手关节直流电机控制电路

基于单片机的机械手关节直流电机控制电路

课程设计(论文)题目基于单片机的机械手关节直流电机控制电路班级学号学生姓名沈阳航空航天大学课程设计任务书课程名称专业综合课程设计院(系)专业班级课程设计题目基于单片机的机械手关节直流电机控制电路课程设计时间:课程设计的内容及要求:利用单片机、电路板开发基于单片机的机械手关节直流电机控制电路,实现机械手关节直流电机控制电路,使直流电机对一个机械手壁关节的启、停、正转、反转控制。

具体要求如下:(1)按以上要求制定设计方案,并绘制出系统工作框图及程序流程图;(2)按要求设计单片机的外围电路,给出电路原理图;(3)编写主要程序;(4)用protus进行仿真,给出仿真电路图;(5)单片机仿真器、电路板、电源等硬件正确可靠地连接;(6)按键控制直流电机进行正反转,使机械手关节活动;指导教师年月日负责教师年月日学生签字年月日目录0前言 (1)1总体设计方案 (1)2.硬件电路设计 (2)2.1单片机系统 (2)2. 2独立按键 (3)2.3 电机驱动 (4)3.软件设计 (6)3.1 按键子程序设计 (8)3.2调速子程序设计 (9)4调试分析 (10)5.结论及进一步设想 (11)参考文献 (11)课设体会 (12)附录1 电路原理图 (13)附录2 元件清单 (14)附录3 程序清单 (15)基于单片机的机械手关节直流电机控制电路摘要:本文设计了由单片机控制的机械手关节直流电机,由单片机、电机驱动芯片、机械手直流电机、控制电机的(正转、反转、启停、调速)键盘组成,主要使用了AT89C52、L298、直流电机主要器件,主要解决方案是利用单片机最小系统设计一个由按键控制的直流电机的在转动来控制机械手关节的运动。

关键字:单片机;直流电机;控制电路。

0前言着我们工业自动化水平的不断提高,在机械加工和机械制造领域,以及各种装配与包装自动化生长线上,机械手的应用以相当普遍。

机械手通常担任着上料,下料等加工任务。

由于PLC顺序控制具有系统简单,可靠,控制灵活方便等特点,而且从PLC诞生之日起,其最基本,最普遍的应用领域就是在工业环境下的顺序控制。

基于51单片机的直流电机PWM调速控制系统设计

基于51单片机的直流电机PWM调速控制系统设计

基于51单片机的直流电机PWM调速控制系统设计I摘要本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。

本文中采用了三极管组成了PWM信号的驱动系统,并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节,从而控制其输入信号波形等均作了详细的阐述。

另外,本系统中使用了霍尔元件对直流电机的转速进行测量,经过处理后,将测量值送到液晶显示出来。

关键词:PWM信号,霍尔元件,液晶显示,直流电动机II目录目录 (III)1 引言 (1)1.1 课题背景 (1)1.1.2 开发背景 (1)1.1.3 选题意义 (2)1.2 研究方法及调速原理 (2)1.2.1 直流调速系统实现方式 (4)1.2.2 控制程序的设计 (5)2 系统硬件电路的设计 (6)2.1 系统总体设计框图及单片机系统的设计 (6)2.2 STC89C51单片机简介 (6)2.2.1 STC89C51单片机的组成 (6)2.2.2 CPU及部分部件的作用和功能 (6)2.2.3 STC89C51单片机引脚图 (7)2.2.4 STC89C51引脚功能 (7)3 PWM信号发生电路设计 (10)3.1 PWM的基本原理 (10)3.2 系统的硬件电路设计与分析 (10)3.3 H桥的驱动电路设计方案 (11)5 主电路设计 (13)5.1 单片机最小系统 (13)5.2 液晶电路 (13)5.2.1 LCD 1602功能介绍 (14)5.2.2 LCD 1602性能参数 (15)5.2.3 LCD 1602与单片机连接 (17)5.2.4 LCD 1602的显示与控制命令 (18)5.3 按键电路 (19)5.4 霍尔元件电路 (20)III5.4.1 A3144霍尔开关的工作原理及应用说明 (21)5.4.2 霍尔传感器测量原理 (22)6 系统功能调试 (23)总结 (24)致谢 (25)参考文献 (26)IV1 引言1.1 课题背景1.1.2 开发背景在现代电子产品中,自动控制系统,电子仪器设备、家用电器、电子玩具等等方面,直流电机都得到了广泛的应用。

基于单片机设计直流电机控制系统

基于单片机设计直流电机控制系统

基于单片机设计直流电机控制系统一、本文概述本文将详细介绍基于单片机的直流电机控制系统的设计过程。

随着科技的不断发展,电机控制在许多领域,如工业自动化、机器人技术、家用电器等,都发挥着重要的作用。

单片机作为一种高效、可靠的微控制器,具有集成度高、功耗低、控制精度高等优点,因此,基于单片机的直流电机控制系统设计成为了研究的热点。

本文将首先介绍直流电机的基本原理和控制方式,然后详细阐述如何利用单片机实现直流电机的精确控制。

在设计中,我们将考虑电机的启动、停止、正反转、调速等基本功能,并探讨如何通过编程实现这些功能。

我们还将讨论系统的硬件设计和软件设计,包括单片机的选型、电机的驱动电路、传感器的选择以及控制算法的实现等。

通过本文的阐述,读者将能够深入了解基于单片机的直流电机控制系统的设计过程,掌握相关的理论知识和实践技能,为实际应用提供有益的参考。

二、直流电机基本原理及特性直流电机是一种将电能转换为机械能的装置,其基本原理基于安培环路定律和电磁感应定律。

直流电机主要由定子、转子、电刷和换向器等部分组成。

定子通常由电磁铁构成,用于产生磁场;转子则是一个带有绕组的圆柱形结构,当通电时,在定子的磁场作用下产生转矩,从而使电机旋转。

调速性能好:通过改变电枢电压、磁场强度或电枢回路中的电阻,可以有效地调节直流电机的转速。

这使得直流电机在需要精确控制转速的场合,如精密机械、自动化设备中得到广泛应用。

启动转矩大:直流电机在启动瞬间,由于电枢电流较大,可以产生较大的启动转矩,使其具有良好的启动性能。

良好的调速动态性能:直流电机在调速过程中,转矩和转速的动态响应较快,能够满足一些对动态性能要求较高的应用需求。

控制方便:直流电机的控制相对简单,可以通过改变输入电压、电流或磁场强度来实现对电机转速和转向的控制。

通过改变电刷的位置,还可以实现电机的正反转切换。

然而,直流电机也存在一些局限性,如结构复杂、维护成本较高以及电刷和换向器易磨损等问题。

基于单片机的直流电机控制电路设计

基于单片机的直流电机控制电路设计

基于单片机的直流电机控制电路设计1.电机驱动电路:电机驱动电路用于控制直流电机的启停、正反转和速度调节。

常见的驱动电路有H桥电路和PWM调速电路。

-H桥电路:H桥电路由四个开关管组成,可以控制电流的流动方向,从而实现正反转功能。

在单片机的控制下,通过控制开关管的导通与断开,可以实现电机的正转和反转。

-PWM调速电路:PWM调速电路通过控制脉冲宽度来调节电机的速度。

单片机产生一个固定频率的PWM信号,通过改变脉冲宽度的占空比,控制电机的速度。

占空比越大,电机转动的速度越快。

2.单片机控制电路:单片机控制电路主要实现对电机的控制和监测功能。

通过单片机的IO口输出控制信号,实现电机的启停、正反转和调速。

同时,通过AD转换接口可以实现对电机的速度、电流等参数的监控。

3.电源电路:电源电路为整个系统提供稳定的直流电源。

常见的电源电路有开关电源和线性电源。

-开关电源:开关电源通过开关器件的开关操作,实现对输入电压的调整,从而输出稳定的直流电压。

开关电源具有体积小、效率高、稳定性好等优点,是直流电机控制电路中常用的电源方式。

-线性电源:线性电源通过线性调节器件,将输入的交流电压转换为稳定的直流电压。

线性电源具有设计简单、成本低等优点,但效率较低,一般用于对电流要求较低的应用场景。

总结:基于单片机的直流电机控制电路通过驱动电路,实现对电机的启停、正反转和速度调节。

通过单片机控制电路,实现对电机的控制和监测功能。

同时,为了保证电路的正常工作,需要提供稳定的直流电源。

以上是一个基本的电机控制电路设计,具体电路设计和参数设置需根据具体的应用场景和要求来确定。

直流电机正反转控制

直流电机正反转控制

(课程设计说明书(2015/2016 学年第二学期)课程名称:单片机应用技术课程设计题目:直流电机正反转控制专业班级:电气工程及其自动化1321班学生姓名:学号: 1指导教师:设计周数:两周设计成绩:2016年6月24日目录一、课程设计目的-----------------------------------3二、课程设计任务及要求-----------------------------3原始数据及主要任务------------------------------------------3技术要求----------------------------------------------------3三、单片机简介-------------------------------------3四、软件设计---------------------------------------4系统分析及应用种类-------------------------------------------4系统设计-----------------------------------------------------5五、电路设计---------------------------------------5电机驱动电路设计------------- -----------------------------5显示电路设计-------------------------------------------------6按键设计-----------------------------------------------------6Proteus 仿真图-----------------------------------------------6Protel 99se 原理图-------------------------------------------7六、程序设计---------------------------------------7七、操作控制--------------------------------------12八、心得体会--------------------------------------12九、参考文献--------------------------------------12一、课程设计目的通过长达两周的课程设计,加深对《单片机》课程所学理论知识的理解,运用所学理论知识解决实际问题。

L298N控制直流电机正反转

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口提供信号;而且电路简单,使用比较方便。

基于51单片机控制直流电机的设计

基于51单片机控制直流电机的设计

基于51单片机控制直流电机的设计设计目标:1.实现电机的正反转控制。

2.实现电机的速度控制。

3.实现电机的位置控制。

硬件设计:1.51单片机控制器:选择一款性能较好的51单片机,如STC89C522.直流电机:选择合适的直流电机,根据设计需求确定功率和转速。

3.驱动电路:为直流电机提供合适的驱动电路,可以选择H桥驱动芯片,如L298N。

4.传感器:根据设计需求,选用合适的传感器,如编码器、讯号灯等。

软件设计:1.系统初始化:对51单片机进行初始化设置,包括端口方向、定时器等配置。

2.速度控制:设计PID算法,实现对直流电机的速度控制。

通过读取传感器反馈的速度信息,与设定值进行比较,输出控制信号控制电机速度。

3.正反转控制:设计控制程序,读取输入信号控制直流电机的正反转。

可以通过输入按键、外部信号或者串口通信来实现控制。

4.位置控制:通过编码器等传感器读取直流电机的位置信息,与设定值进行比较,输出控制信号控制电机运动到目标位置。

5.通信功能:如果需要与其他设备进行通信,可以使用串口、蓝牙等通信模块实现数据传输。

设计步骤:1.确定设计需求:根据具体应用场景,确定控制电机的功能需求,包括速度控制、正反转控制和位置控制等。

2.硬件搭建:按照设计需求,选取合适的电机、驱动电路和传感器,并进行搭建和连接。

3.软件开发:根据设计目标,编写相应的程序代码,实现功能要求。

5.优化改进:根据实际使用情况,对系统进行优化改进,提高系统的性能和稳定性。

总结:基于51单片机控制直流电机的设计是一种常见的嵌入式系统开发方案。

通过合理选择硬件和设计软件,可以实现控制电机的速度、方向和位置等功能。

在实际应用中,还可以根据具体需求进行优化改进,使系统更加稳定和可靠。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于单片机的直流电机控制(正反转,开关控制)原理图如下:
程序如下:
/*用电机来代表门的转动情况*/
#include <reg51.h>
//定义变量
sbit kaimen=P0^0;
sbit zanting=P0^1;
sbit fanxiang=P0^2;
sbit P2_0=P2^0;
sbit P2_1=P2^1;
bit Flag = 1;//定义电机正反向标志
//函数声明
void motor_turn(void); //正反向控制
void Timer0_init(void); //定义定时器0初始化
/******************************延时处理***************************/
void Delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/***************************************************************/
void Timer0_int(void) interrupt 1 using 1//定时器0中断处理主要用来处理换方向的时候
{
TR0 = 0;
TL0=(65536-50000)/ 256; //定时50ms
TH0=(65536-50000)% 256;
TR0 = 1;
if(Flag == 1)//代表改变方向
{
P2_0 = 0;
P2_1 = 1;
}
else //方向不变
{
P2_1 = 0;
P2_0 = 1;
}
}
/****************开始转动:人满时候开始转动**************/
void motor_start(void)
{ if(kaimen==1)
{
//Delay(10);
if(kaimen==1)
{
P2_0 = 0;
P2_1 = 1;
}
}
}
/***************有人但是人未满时或者有夹到人的时候暂停*************/
void motor_pause(void)
{ if(zanting==1)
{
Delay(10);
if(zanting==1)
{
EA=0;
P2_0 = 0;
P2_1 = 0;
}
}
}
/**********************电机方向转动**************************/ void motor_turn(void)//电机反向转动
{
if(fanxiang == 1)
{
Delay(10);
if(fanxiang == 1)
{
Flag = ~Flag;
}
while(fanxiang == 1);
}
}
/***********************定时器0初始化**************************/ void Timer0_init(void)//定时器0初始化
{
TMOD=0x01;
TH0=(65536-50000)/ 256;
TL0=(65536-50000) % 256;
TR0=1;
ET0=1;
}
/**********************主函数***********************/
void main(void)//主函数
{
Timer0_init();
while(1)
{ if(kaimen==1)
EA=1; //开始时候开启中断
motor_start();
motor_pause();
motor_turn();
}
}。

相关文档
最新文档