基于单片机的直流电机检测与控制系统

摘要: 文章设计一款流电机控制系统,以 STC89C51 作为直流电机控制系统的主控制器,采用 LM293 做为驱动器实现 对直流电机的驱动,采用霍尔实现对直流电机速度的检测;本文对直流电机控制系统功能分析,选择确定直流控制系 统各个模块的参数和型号;然后对该直流电机的硬件电路和软件算法进行设计,最后对该直流电机控制系统的实物制 作和测试,对测试结果显示,在 5 个按键输入控制的作用下,直流电机能够实现加速、减速、正反转以及暂停功能,实现 功能。
关键词: 流电机;速度检测与控制;单片机;霍尔传感器
在国民生活、生产的每一个领域中,都渗进了直流电机的 控制与应用。因而有关的研究多多。直流电机用定角转动控 制,其以突出的优点被广泛应用,如开环控制较易实现,不会 产生积累误差等。因此,被应用在家居行业中的指针式电子 钟表、电动窗帘等,工业中的包装机械的计量系统、光盘选取 机、数控切割机等,建筑业中的喷泉喷头角度控制系统等。随 着现代控制技术的智能化和网络化,也将单片机引入到直流 电机控制系统中,从上述状况看来,对基于单片机的直流电机 控制系统,有必要性进行进一步的研究与改进。

1 系统方案设计

本直流电机控制系统实现的功能主要是,实现对直流电 机的速度检测、控制以及显示,通过按键实现直流电机的正反 转,加速以及暂停控制,所以设计的框图如图 1 所示。
主要包括 6 个部分实现直流电机的驱动功能,按键实 现正反转、加减速以及暂停的功能;单片机扫描到按键后对 驱动模块进行驱动,实时显示直流电机速度和占空比等信 息。
电机速度在硬件电路上对电机的速度调节是通过对加在 直流电机上的电压进行调整的,因为直流电机的速度与加在 直流电机上的电压为一个正比例关系,二PWM 技术对于线下 调节电路非常实用,所以采用 PWM 技术。简单的介绍 PWM 技术,PWM 技术实际就是使得单片机的引脚输出波形,引脚 输出高时直流电机转动并且是最高转速,输出低时直流电机 不动最低转速,所以在一定周期下,改变两者的时间,实现对 加在直流电机上的电压进行调节。
设计的硬件电路如图 2 所示,主要包括单片机控制电路, 显示电路,按键调节电路以及直流电机驱动电路。

2 系统硬件电路设计

2.1 单片机最小系统电路设计

单片机其中一个复位电路,属于手动执行;同时采用电压 不能实现突变特性采用电容 C1 和限流作用的 R7 电阻,实现 另外一种复位,保证不论在何时上电,单片机的程序都是从最 开始执行的,这一复位原理是基于电容上所加电压不能突变 的原理,在上电瞬间保持加在电容上 5V 和 RESET 引脚上的 高电平电压时间大于单片机所需复位两个周期的典型时间而 实现复位。
通过晶振与单片机的 XTAL11 和 XTAL22 连接构成的晶 振电路,作为单片机工作的基准,电容的取值范围大多数在 15 到 33pF 之间,主要就是辅助晶振实现快速起动振荡的作用, 晶振就是单片机工作时基的基准,晶振值大小与工作时基的 基准成反比例关系,越大工作时基频率越快。为了提高晶振 实现快速起动30pf电容,晶振选择 12M 对应工作时间为( 1/12 ) us;

2.2 速度检测电路设计

速度作为系统检测的基础,霍尔实现对速度的检测。霍 尔检测电路输出的输出信号与单片机的 P33 外部中断引脚连 接,因为输出的 PWM 信号,采用其外部中断对里程和速度进 行换算实现速度检测。

2.3 速度显示电路设计

需要在该系统中液晶用来显示时间倒计时和界面信息, 使用液晶字符式来显示倒计时,在控制方面可以用软件来实 现精准的控制,并且可以显示不同形式的字符内容,缺点就是 价格昂贵。显示电路主要由单片机的 P0 口对液晶的 8 个数 据口控制,进行数据读写操作,相关的读写指令则由单片机的 P1.0、 P1.1 控制实现。

2.4 电机驱动电路设计

系统的电机驱动电路设计所示采用 H 桥实现对直流电机 的速度和方向控制,单片机的 P34 和 P37 分别对一个桥臂进 行控制,H 桥由四个 NPN 三极管构成,单片机 P34 引脚输出 高电平 P37 输出低电平时, Q3 和 Q4 导通, Q5 和 Q6 断开,在 电机的左端为高电平,右端接电源地,电机正转,反之电机反 转,实现对电机方向的控制,通过 PWM 原理实现对电机的速 度进行控制。

2.5 按键电路设计

五个按键电路功能分别对应的是电机的启停控制、转速 方向控制以及速度加减控制。K1 按键实现的功能是控制电机 的正转控制,由单片机的 P1.0 控制; K2 按键实现的电机反旋 转方向的控制,由单片机的 P1.1 控制; K3 按键实现的是电机 速度加控制,由单片机的 P1.2 控制; K4 按键实现的是电机的 速度减控制,由单片机的 P1.3 控制; K5 按键实现的是电机的 停止控制,由单片机的 P1.4 控制,按键按下引脚被接地,单片 机读取引脚状态即可实现功能。

3 软件设计

主程序流程图如图 3 所示,读取扫描按键值,实现对电机 不同状态的控制,加速、减速以及启停控制,根据检测到的值 对 LCD 进行控制,实现直流电机显示、控制系统。

4 系统仿真分析

在 Proteus 上联合 keil 软件对硬件和软件算法进行仿真, 得到仿真电路如图 4 所示。
接下来,就对直流电机的主要功能进行验证和调试,通过 四个按键来实现启停控制,同时还对显示功能进行验证。通 过上述实验,本文对基于单片机的直流电机控制系统的相关 功能进行验证,实现了对直流电机的速度控制以及精确显示, 完成了预期的设计功能。

5 结语

虽然本文完成了对直流电机控制系统,但是还有很多需 要改进的地方,比如可以对软件部分进行优化,通过更先进的 控制算法实现直流电机控制精度的提高,还可采取触摸屏实 现对直流电机控制系统的触摸操作等 本文基于单片机设计了一款直流电机控制系统,实现 了对直流电机的精确控制,满足了对直流电机的加速、减 速、正反转及暂停等控制操作。整个系统包括单片机核心 控制电路、按键功能电路、直流电机驱动电路以及指示灯电 路,在硬件电路以及软件代码的设计基础上,本文通过 protues 以及 keil 对系统进行了联合仿真,验证了硬件以及软 件设计。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/diannao/10459.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WAAP全站防护理念,发现和保护敏感数据

数据是现代企业的新石油:正确使用它可以促进公司的发展并帮助企业在竞争中领先。就像石油一样,原始数据和未被发现的数据是毫无用处的,企业将无法从中受益;在最坏的情况下,它可能会导致安全事件。这也是企业投资敏感数…

巩固学习4

python中函数逆置的几种方法 s input()for i in range(len(s)-1,-1,-1):#从最后一位开始,步长为-1print(s[i],end)用for语句循环逆置 s input() s list(s) n len(s) for i in range(n//2):s[i],s[n-1-i] s[n-1-i],s[i]#从中间反转字符串 res "".j…

A计算机上的程序与B计算机上部署的vmware上的虚拟机的程序通讯 如何配置?

环境: 在A计算机上运行着Debian11.3 Linux操作系统;在B计算机上运行着Windows10操作系统,并且安装了VMware软件,然后在VMware上创建了虚拟机C并安装了CentOS 6操作系统 需求: 现在A计算机上的程序需要同虚拟机C上的软…

(十二)JSP教程——exception对象

exception对象用来发现、捕获和处理JSP页面中的异常&#xff0c;是JSP文件运行时产生的异常对象。如果要使用它&#xff0c;必须将对应的JSP的page指令的isErrorPage属性设置为ture&#xff0c;即&#xff1a;<% page isErrorPage”true”%>。 JSP文件在运行中有异常现象…

【负载均衡式在线OJ项目day6】源文件路由功能及文件版题库构建

一.前言 前文讲到了OJ模块的设计思路&#xff0c;毫无疑问这是一个网络服务&#xff0c;我们先使用httplib&#xff0c;将源文件的路由功能实现&#xff0c;先把框架写好&#xff0c;后续再更改回调方法。 随后计划编写Modify模块&#xff0c;提供增删查改题库的功能(主要是查…

【贪心算法】最小生成树Kruskal算法Python实现

文章目录 [toc]问题描述最小生成树的性质证明 Kruskal算法Python实现时间复杂性 问题描述 设 G ( V , E ) G (V , E) G(V,E)是无向连通带权图&#xff0c; E E E中每条边 ( v , w ) (v , w) (v,w)的权为 c [ v ] [ w ] c[v][w] c[v][w]如果 G G G的一个子图 G ′ G^{} G′是…

acer笔记本怎样进行系统还原?教你两招!

acer笔记本怎样进行系统还原&#xff1f;教你两招&#xff01; 作为笔记本用户&#xff0c;你在日常使用中可能会遇到各种各样的电脑问题。一般来说&#xff0c;对于一些小问题&#xff0c;我们可以通过一些简单的操作来解决&#xff0c;比如重新启动电脑或者长按电源键强制关机…

深入探讨布隆过滤器算法:高效的数据查找与去重工具

在处理海量数据时&#xff0c;我们经常需要快速地进行数据查找和去重操作。然而&#xff0c;传统的数据结构可能无法满足这些需求&#xff0c;特别是在数据量巨大的情况下。在这种情况下&#xff0c;布隆过滤器&#xff08;Bloom Filter&#xff09;算法就显得尤为重要和有效。…

MongoDB聚合运算符:$toLong

MongoDB聚合运算符&#xff1a;$toLong 文章目录 MongoDB聚合运算符&#xff1a;$toLong语法使用举例 $toLong聚合运算符将指定的值转换为长整数类型。如果指定的值为空或缺失&#xff0c;则返回null&#xff1b;如果值无法被转换为长整数&#xff0c;则报错。 语法 {$toLong:…

提高静态住宅代理稳定性妙招

在数字化时代的浪潮中&#xff0c;静态住宅代理因其独特的优势&#xff0c;如固定的IP地址、更高的隐私保护性等&#xff0c;逐渐成为网络爬虫、数据分析等领域不可或缺的工具。然而&#xff0c;静态住宅代理的稳定性问题一直是用户关注的焦点。本文将为您揭示提高静态住宅代理…

docker compose kafka集群部署

kafka集群部署 目录 部署zookeeper准备工作2、部署kafka准备工作3、编辑docker-compose.yml文件4、启动服务5、测试kafka6、web监控管理 部署zookeeper准备工作 mkdir data/zookeeper-{1,2,3}/{data,datalog,logs,conf} -p cat >data/zookeeper-1/conf/zoo.cfg<<EOF…

JS代码随想录(一):数组

代码随想录 一、数组理论基础 二、LeetCode 704. 二分查找 三、LeetCode 27. 移除元素 四、LeetCode 977.有序数组的平方 五、LeetCode 209.长度最小的子数组 六、LeetCode 59.螺旋矩阵II 七、数组总结 一、数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 数组…

3 PWM控制

Esp32的PWM控制也配置库函数&#xff0c;以下就是PWM所用到的函数 1 PWM通道初始化设置 函数原型uint32_t ledcSetup(uint8_t chan, uint32_t freq, uint8_t bit_num)函数功能设定指定LEDC通道的PWM信号频率和占空比分辨率返回值通道PWM信号的频率参数说明chan&#xff08;LE…

boost asio同步编程(附源码api)

首先注明&#xff0c;这里我写的都是关于tcp的通信。 通信大致流程 创建端点 创建tcp端点的api是boost::asio::ip::tcp::endpoint; 当然创建udp端点的api则是boost::asio::ip::udp::endpoint; 是一个表示 TCP/UDP 端点的类&#xff0c;在 Boost.Asio 库中用于网络编程。它通…

鸿蒙ArkUI:【编程范式:命令式->声明式】

命令式 简单讲就是需要开发用代码一步一步进行布局&#xff0c;这个过程需要开发全程参与。 开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 Objective-C ObjectiveC 复制代码 UIView *cardView …

day3_prefixSum

一、前缀和技巧 重点 前缀和技巧适用于快速、频繁地计算一个索引区间内的元素之和 个人理解&#xff1b;预计算&#xff0c;空间换时间 1.(一维数组的前缀和)303区域和检索-数组不可变 获取闭区间值 [left,right] -> preSum[right 1] - preSum[left],其中preSum[right…

Linux下VMamba 环境复现+环境测试

# 1. 创建自己的虚拟环境 conda create -n VMamba python3.10.13 conda activate VMamba # 2. cuda-11.8 conda install cudatoolkit11.8 -c nvidia # 3. torch torchvision torchaudio 与 官网命令一致 pip install torch2.1.1 torchvision0.16.1 torchaudio2.1.1 --index-url…

苹果电脑怎么清内存?2024有哪些好用的工具?

在使用苹果电脑的过程中&#xff0c;我们可能会遇到系统运行缓慢、程序响应迟缓或频繁出现应用程序崩溃的情况&#xff0c;这些问题很可能是由于内存占用过高所导致。内存&#xff0c;或称为RAM&#xff08;RandomAccessMemory&#xff09;&#xff0c;是计算机的临时存储区&am…

[C++][PCL]pcl安装包预编译包国内源下载地址

版本名称下载地址PCL-1.14.1-AllInOne-msvc2022-win64含pdb.zip点我下载PCL-1.14.0-AllInOne-msvc2022-win64含pdb.zip点我下载PCL-1.13.1-AllInOne-msvc2022-win64含pdb.zip点我下载PCL-1.13.0-AllInOne-msvc2022-win64含pdb.zip点我下载PCL-1.12.1-AllInOne-msvc2019-win64含…

超级好看的html网站维护源码

源码介绍 好看的html网站维护源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c; 源码截图 源码下载 好看的html网站维护源码