当前位置: 首页 > news >正文

基于单片机的步进电机控制系统研究

摘 要 近年来 步进电机凭借其定位精度高 使用方便 性价比高 容易控制等优点 在各领域受到广泛应用 文中利用C52 单片机设计了一种步进电机控制系统 介绍了其总体方案 主控制模块 驱动电路 键盘 晶振电路模块等 并使用Protues绘制仿真图 与编程软件进行联合调试仿真 仿真结果表明 所设计的步进电机控制系统正确有效
关键词 单片机 步进电机 控制系统 研究 仿真

0

步进电机又称脉冲电动机,凭借其定位精度高、使用方便、性价比高、容易控制等优点,在办公自动化、工厂自动化和计算机外部设备等领域中受到广泛应用 ,故对其控制系统的研究颇为重要。
本文采用 C52 单片机 设计步进电机的控制系统,并使用 Protues 绘制仿真图,同时与编程软件( Keil4 )进行联合调试仿真,仿真结果表明,所设计的步进电机控制系统使用便捷、有效。

1 步进电机简介

步进电机是一种感应电动机,根据电子电路的原理将直流电变为分时供电、多相时序控制的电流,用分时电流为步进电机供电,使步进电机正常工作,而驱动器就是一种能为其分时供电,多相时序的控制器
步进电机在不超过负载的情况下,其转速、停止的位置只由脉冲频率以及脉冲数决定,而负载以外的变化对其无影响,当驱动器接收到一个脉冲信号时,便会驱动步进电机按设定好的方向转动一个固定的角度(“步距角”),其旋转按设定方向一步步运行。步进电机通过控制脉冲个数来控制角位移量,从而达到精准定位。同时也可通过控制脉冲频率来控制其速度与加速度,从而达到调速的目的。

2 硬件设计

本文以 STC89C52 单片机为核心处理器,将按键作为输入模块,以控制步进电机的正转、反转、步进,并实现正反转。步进电机选用 28BYJ-48 型四相八拍式步进电机,系统构成如图 1 所示。
由于单片机直接输出的脉冲信号不大,无法让步进电机正常工作,因此不能将其直接连接到步进电机上,需要在它们之间加上一个驱动电路。对于直流电流小于 0.5 A 的步进电机来说,可通过型号为 ULN2003A 的达林顿芯片来驱动步进电机,从而使其正常工作。ULN2003A 系列驱动器的引脚与步进电机连线示意图如图 2 所示。左边 1 7 为输入端,接单片机P2 口的输出端,驱动信号由 P2 口的 P2.0 P2.3 输出,左侧10~ 16 为输出端引脚,接步进电机,引脚 9 5 V 电源,该驱动器提供的电流最高为 0.5 A
键盘是由若干按键组成的按键矩阵,是一种最简单的单片机输入设备,通过键盘输入相应数据和指令来实现人对机器的控制,键盘电路如图 3 所示。
本文采用外部中断的方式。信号输入部分为 P3 口, P1 口为发光二极管显示部分,P2 口作为电机的驱动部分,整体仿真电路如图 4 所示。

3 程序设计

系统主程序流程如图 5 所示。系统上电复位,对参数进行初始化,然后检测串口是否发送数据,当确定串口数据发送后程序便调用相应的子程序 ;如果串口没有发送数据则程序重新初始化。系统上电复位后,键盘初始化并复位,然后进入按键查询,等待操作。当有按键按下后,系统开始调用相应的子程序。按键程序流程如图 6 所示,步进电机工作流程如图 7 所示。

4 仿真调试

使用 Protues 绘制仿真图,与编程软件( Keil4 )进行联合 调试仿真。当步进电机接收到连续不断的脉冲信号时,则持续运转。步进电机的绕组通电状态每改变一次就会产生一个脉冲信号,转子也相应转过一个步距角。当通电状态结束一个循环时,转子会转过一个齿距。四相八拍方式的通电顺序为:A 相线圈最先通电 ;然后转换变为 A B 两相线圈同时通电 ;接着 B 相线圈通电 ;再之后 B C 两相线圈同时通电……(即按 A-AB-B-BC-C-CD-D-DA-A …的顺序进行)。当步进电机定子绕组按顺序周期性通电时,转子沿设定方向一步步转动。步进电机工作波形如图 8 所示。

5

本文采用 C52 单片机来设计步进电机的控制系统,介绍 了其总体方案、主控制模块、驱动电路、键盘、晶振电路模块等, 并使用 Protues 绘制仿真图,与编程软件进行联合调试仿真, 仿真结果表明,所设计的步进电机控制系统正确有效。

相关文章:

基于单片机的步进电机控制系统研究

摘 要 : 近年来 , 步进电机凭借其定位精度高 、 使用方便 、 性价比高 、 容易控制等优点 , 在各领域受到广泛应用 。 文中利用C52 单片机设计了一种步进电机控制系统 , 介绍了其总体方案 、 主控制模块 、 驱动电路 、 键盘 、 晶…...

Fine-tuning和模型训练的关系

概述 Fine-tuning和模型训练不是完全相同的概念,但它们之间有密切的关系,都是机器学习和深度学习过程中的重要步骤。 模型训练是一个更广泛的概念,指的是使用数据去调整模型的内部参数,以使得模型能够从输入数据中学习并做出预测…...

【ai】livekit:Agents 3 : pythonsdk和livekit-agent的可编辑模式下的安装

livekit-agent 依赖于livekit、livekit-api、livekit-protocol 其中livekit就是livekkit-rtc: 包含俩sdk 实时互动sdkReal-time SDK for connecting to LiveKit as a participant livekit-api : 服务端sdk https://pypi.org/project/livekit-api/ livekit的python sdk...

【传知代码】BERT论文解读及情感分类实战-论文复现

文章目录 概述原理介绍BERT模型架构任务1 Masked LM(MLM)任务2 Next Sentence Prediction (NSP)模型输入下游任务微调GLUE数据集SQuAD v1.1 和 v2.0NER 情感分类实战IMDB影评情感数据集数据集构建模型构建 核心代码超参数设置训练结果注意事项 小结 本文…...

【C language】判断一个正整数是否是2^n

题解:判断一个正整数是否是2^n(位运算方法) 1.题目 判断一个正整数是否是2^n 2.位运算法 思路:干掉二进制最右边的1,看是否是0 int main() {int num 16;if ((num & (num - 1)) 0) printf("the num is a 2^n");else print…...

解锁Android高效数据传输的秘钥 - Parcelable剖析

作为Android开发者,我们经常需要在不同的组件(Activity、Service等)之间传输数据。这里的"传输"往往不仅仅是简单的数据复制,还可能涉及跨进程的内存复制操作。当传输的数据量较大时,这种操作可能会带来严重的性能问题。而Android系…...

前端 CSS 经典:filter 滤镜

前言:什么叫滤镜呢,就是把元素里的像素点通过一套算法转换成新的像素点,这就叫滤镜。而算法有 drop-shadow、blur、contrast、grayscale、hue-rotate 等。我们可以通过这些算法实现一些常见的 css 样式。 1. drop-shadow 图片阴影 可以用来…...

专业的力量-在成为专家的道路上前进

专业的力量-在成为专家的道路上前进 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 现在稀缺的已不再是信息资源,而是运用信息的能力。过去…...

10分钟掌握FL Studio21中文版,音乐制作更高效!

FL Studio 21中文版是Image Line公司推出的一款深受欢迎的数字音频工作站软件,在音乐制作领域享有盛誉。这个版本特别针对中文用户进行了本地化处理,旨在提供更加便捷的用户体验和操作界面。本次评测将深入探讨FL Studio 21中文版的功能特点、使用体验及…...

Python中4种读取JSON文件和提取JSON文件内容的方法

在Python中,有几种常用的方法可以用于读取JSON文件并提取数据。以下是四种主要的方法 使用iamn 1oad:0”:这个方法用于格一个包合S0N文档的字符串(enr、wtas典otea实列)反席列化 (0eseia28)为Pm0n%象。例如,如果你有一个ISON格式的字荷电,你…...

el-pagination在删除非第一页的最后一条数据遇到的问题

文章目录 前言一、问题展示二、解决方案三、源码解析1、elementui2、elementplus 总结 前言 这个问题是element-ui中的问题,可以从源码中看出来,虽然页码更新了,active也是对的,但是未调用current-change的方法,这里就…...

视频汇聚平台LntonCVS视频监控系统前端错误日志记录及Debug模式详细讲解

LntonCVS作为一种支持GB28181标准的流媒体服务平台,旨在提供一个能够整合不同厂商设备、便于管理和扩展的解决方案,以适应日益复杂的视频监控环境。通过实现设备的统一管理和流媒体的高效传输,LntonCVS帮助构建更加灵活和强大的视频监控系统。…...

高并发项目-用户登录基本功能

文章目录 1.数据库表设计1.IDEA连接数据库2.修改application.yml中数据库的名称为seckill3.IDEA创建数据库seckill4.创建数据表 seckill_user5.密码加密分析1.传统方式(不安全)2.改进方式(两次加密加盐) 2.密码加密功能实现1.pom.…...

kotlin基础之泛型和委托

Kotlin泛型的概念及使用 泛型概念 在Kotlin中,泛型(Generics)是一种允许在类、接口和方法中使用类型参数的技术。这些类型参数在实例化类、实现接口或调用方法时会被具体的类型所替代。泛型的主要目的是提高代码的复用性、类型安全性和可读…...

awtk踩坑记录二:移植jerryscript到awtk design项目

工作要求,想尝试看看在awtk-designer设计界面的同时能不能用javascript开发逻辑层,以此和前端技术联动,本文是一种项目建构的思路。 从github下载并编译awtk, awtk-mmvm和awtk-jerryscript(如果没有) 用awtk-designer…...

正邦科技(day2)

自动校准 问题:电量不准都可以直接去校准 校准方式:可程式变频电压 问题分析:他是通过软件去自动自动校准的,flash 清空的时候有缓存没有清空,或者互感器没有读取到问题 互感器:电流互感器的作用包括电流测…...

技术架构设计指南:从需求到实现

技术架构是软件系统的骨架,它决定了系统的性能、可靠性、扩展性等关键特性。本文将介绍技术架构设计的一般步骤和方法。 第一步:需求分析 在设计技术架构之前,首先要对系统需求进行全面深入的分析。这包括功能需求、非功能需求(如…...

【数据结构:排序算法】堆排序(图文详解)

🎁个人主页:我们的五年 🔍系列专栏:数据结构课程学习 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 🍩1.大堆和小堆 🍩2.向上调整算法建堆和向下调整算法建堆:…...

git 派生仓库怎么同步主仓库的新分支

一、git 派生仓库怎么同步主仓库的新分支 要使你的Git派生仓库同步主仓库的新分支,请遵循以下步骤: 1、添加上游仓库(如果尚未添加): 如之前所述,确保上游仓库已经被添加到你的本地仓库。如果没有,使用命…...

对比方案:5款知识中台工具的优缺点详解

知识中台工具为企业和组织高效地组织、存储和分享知识,还能提升团队协作的效率。在选择搭建知识中台的工具时,了解工具的优缺点,有助于企业做出最佳决策。本文LookLook同学将对五款搭建知识中台的工具进行优缺点的简单介绍,帮助企…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)&#xff0…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

JVM垃圾回收机制全解析

Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...

Git常用命令完全指南:从入门到精通

Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...