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

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

摘要: 步进电机控制作为一种电机控制系统的重要模式,属于现代数字化控制的重要手段,其应用已经相当广泛。步进电机属于感应电机类,利用电子电路将直流电分为分时供电、多相时序供电控制电流,利用这种电流为电机供电,驱使电机工作。步进电机不能够在常规模式下使用,必须通过双环形脉冲信号驱动电路,因此在使用的过程中必将涉及多方面学科知识,目前已经成为电机一体化控制关键技术。
关键词: 单片机;步进电机;控制系统
步进电机的启动运行直接影响到数字控制的准确性和稳定性,因此在对单片机控制的过程中必须有效渡过加速度运行阶段,以保障电机精准、高效运行。目前的步进电机驱动技术主要采用了斩波恒流控制和正弦脉宽调制技术进行电机控制,极大限度的提高了电机的运行速度和运行精度。另外,单片机的电路设计上,其驱动器电路通常会采用单片机加外围电路方式,通过专用的SPWM芯片实现数字信号处理。本文针对单片机中利用步进电机控制系统进行电机运行控制,为提高单片机的电机运行速度和准确度提供建议。

1 理论概述

1.1 步进电机控制原理

步进电机和普通的电机组成基本一样,其主要的组成有:定子、转子等主要的组件。步进电机的主要控制原理在于通过磁通寻找最短路径,以此来一步步实现电机转动控制。步进电机运行可分为四个阶段,每个阶段转子的两极有多个牙齿,转子轴上多齿,因此电机运行中可能会出现错齿问题

1.2 步进电机系统组成

步进电机控制系统一般都是采用开环控制方式,其装置的成本低、结构相对简单、运行稳定。步进电机作为自动化控制装置,其被广泛应用于数控机床、机器人、智能控制、工业自动化等自动化控制领域。单片机的步进控制系统作为一种常用的步进电机控制系统,采用典型的步进电机控制驱动,主要包含了:步进控制器、驱动器以及步进电机三个部分。单片机选型为AT89S51时,其具备128字节的ram和4字节的flash闪存储存器。采用标准兼容的8051系统指令和引脚,可实现在线编程和传统方式编程。驱动器将单片机的输出脉冲加大,通过驱动步进电机实现电机运行,驱动器实现了输出功率放大的同时输出反相。步进电机采用了四相反应式步进电机,通过两种励磁方式推动运行

2 步进电机控制系统

2.1 基本组成

步进电机控制系统作为一个控制整体,其具有操作控制和运动控制系统之分,二者之间相互辅助共同形成了控制单片机电机运行。操作系统控制主要是将操作者的操作转化为运动系统能够接受分析的电信号,运动系统随之做出反应,完成操作者的规定、规范动作。运动控制则属于一种实实在在的控制技术,完成了物体的位置运动和速度控制操作。运动控制系统在一般的步进电机控制系统中由驱动、控制以及执行三个部分组成,运动控制系统在控制操作员的指令之下,驱动电机,通过电机完成执行任务操作。随着科学的不断发展,步进电机控制系统技术变得日益成熟,由操作系统的运营商提供操作规范,然后再通过运动控制系统接受电信号,驱动控制系统完成全套反应动作。目前,单片机的电机进行步进控制的时候,主要关注点在于控制对象的位置和速度,总结起来整个控制过程分为了控制、驱动以及执行等几个重要部分。

2.2 驱动控制系统组成

单片机进步电机控制系统主要分为了脉冲信号产生、脉冲信号分为两个主要部分,其中脉冲信号产生作为步进电机控制的重要开始。脉冲信号产生主要通过单片机完成,常规脉冲为0~5V,通过增加发电功率和时间延长时序以此控制软件编程。脉冲信号的分为则分为硬件法和软件法两种方式:其一,硬件法。硬件法则主要是通过一种特殊的脉冲分配装置控制脉冲信号的分布, 如, 常用的 PMM8713可以很好实现单片机输出脉冲信号分布,通过逻辑方式组合相绕组。硬件法利用特殊的脉冲控制分配器和触发器,通过这些装置来控制指令信号,然后直接通过放大器按照逻辑关系驱动电机
运动。其二,软件法。通过软件法编写程序,可以控制电机的电流转变过程按照一定的顺序来完成具体程序,利用单片机的输入输出接口驱动电路,并判断输出的具体的脉冲信号。脉冲信号控制的时候,
往往是通过旋转方式来控制脉冲,整个过程会缩短CPU运行时间。通过软件法搭建步进电机控制系统可以降低生产成本。因此,很多单片机的电机进行控制的时候选择软件法,其更加实惠。我国工业
生产不断实现数字化,利用软件法来实现步进电机控制系统搭建的相关技术也将变得更加成熟,符合于未来的电机控制系统开发发展方向。

2.3 功率放大器

单片机的输出脉冲电流比较小,因此需要功率放大操作,因此放大器被用于单片机的步进电机控制系统中。实现单片机的驱动系统的关键就是选择合适的功率放大器,具体的驱动步进电机控制进行旋转需放大脉冲信号。平均电流和电机转矩要尽可能保障电动机驱动系统选择额定平均电流更大目标。通过高功率放大器来控制和驱动特殊设备,也可以根据不同的需求制定出不同的驱动模式

3 单片机步进电机控制系统设计

步进电机控制电路采用四相步进电机,其具备良好的负载能力,其可以控制电机的安全、稳定、准确运行。步进电机定子绕组方案按照一定的顺序进行排列,转子则沿着固定方向一步一步转动。步进电机运行的四个阶段,必须满足电力秩序八拍,具体的顺序为:
A--AB--B--BC--C--CD--D--DA--A。
单片机步进电机控制系统的实现方案程序如下所示:
ORG 0000H
LJMP MIAN
MAIN:MOV Sp,#06H;堆栈指针
ACALL,DELAY
SMRUN;电机控制方式单八拍
MOV PI,#08H;A相开始通电
ACALL,DELAY
MOV PI,#06H;AB相开始通电
ACALL,DELAY
MOV PI,#02H;C相开始通电
ACALL,DELAY
MOV PI,03H;CD相开始通电
ACALL,DELAY
MOV PI,01H;D相开始通电
ACALL,DELAY
MOV PI,09H;DA相开始通电
ACALL,DELAY
MOV PI,R4,#10
DR1,AY1
MOV R5,#250
DJNZ R4,DELAY
RET
END
上述的程序设计按照步进电机运行的四个阶段,必须满足电力秩序八拍顺序而成,其能够满足单片机步进电机控制系统的要求。

4 结语

单片机在数控机床以及机械自动化中的应用相当广泛,而步进电机控制系统又是当前主流的脉冲控制系统。利用步进电机控制系统实现了将电子技术、驱动技术等融合在一起,可以实现对电机的
稳步、准确控制。单片机的步进电机控制系统最为主要的注意点在于电脉冲信号控制,通过控制相绕组实现对整个电流控制。步进电机控制系统必须突出其精确控制功能,同时还要尽可能减少累积误差,否则设计的步进电机控制系统则存在着系统缺陷,无法在市场上站稳脚跟或将失去竞争力。

相关文章:

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

摘要: 步进电机控制作为一种电机控制系统的重要模式,属于现代数字化控制的重要手段,其应用已经相当广泛。步进电机属于感应电机类,利用电子电路将直流电分为分时供电、多相时序供电控制电流,利用这种电流为电机供电,驱使电机工作。步进电机不能够在常规模式下使用,必须通过双环…...

BioPorto胰高血糖素样肽-1抗体(GLP-1)

丹麦BioPorto Diadnostics公司致力于提供世界领先的GLP-1抗体。基于结合GLP-1位点的不同,他们筛选出了不同的抗GLP-1抗体。有的抗体可以同时结合GLP-1的活性形式和非活性形式,有的专门结合生物活性形式的GLP-1。在开发和检测GLP-1相关治疗的过程中&#…...

Go 语言字符串及 strings 和 strconv 包

在 Go 语言编程中,字符串是最基本、最常用的数据类型之一。无论是处理用户输入、读取文件内容,还是生成输出,字符串操作无处不在。为了方便开发者对字符串进行各种操作,Go 语言提供了强大的 strings 包和 strconv 包。strings 包包…...

政府窗口服务第三方评估报告如何写

撰写政府窗口服务第三方评估报告需要结构清晰、内容详实,并包含对评估过程和结果的详细描述以及改进建议。以下是第三方评估机构民安智库(第三方社会评估调研公司)给出的一个政府窗口服务第三方评估报告简单的示例: 一、封面 报…...

若依前后端分离Spring Security新增手机号登录

备忘贴 转自:【若依RuoYi短信验证码登录】汇总_数据库_z_xiao_qiang-RuoYi 若依 配置Security: 按照Security的流程图可知,实现多种方式登录,只需要重写三个主要的组件,第一个用户认证处理过滤器,第二个用户认证tok…...

Oracle操作扩可变字符长度交易影响分析-较小

使用AI帮助学习知识 以下知识来至AI oracle 一张大表,对可变字符串长度从10扩到20位,oracle底层存储是否会发生变化,先锁表,更新表字典信息,然后会不会重新整理表,在有交易的情况下导致大量交易失效&#…...

全栈工程师需要具备哪些技能?

概论: 全栈工程师是一位能够从头到尾构建 Web 应用程序的工程师,能独立完成产品。技术包括前端部分、后端部分和应用程序所在的基础架构。他们在整个技术栈中工作,并了解其中的每个部分。从需求分析开始,到概要设计,详…...

用java实现客服聊天+网络爬虫下载音乐(java网络编程,io,多线程)

一 灵感: 在2022年的暑假,也就是我即将迈进高三的那个暑假,我并没有察觉自己应该要学习了,还是和过往的暑假一样玩着王者荣耀,凌晨2点睡觉,中午12点起床。我依稀记得这种状态一直持续到8月19。然而离开学还…...

基于springboot+vue的医院信息管理系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...

乡村振兴与农业科技创新:加大农业科技研发投入,推动农业科技创新,促进农业现代化和美丽乡村建设

一、引言 在当代中国,乡村振兴已成为国家发展的重要战略之一。作为国民经济的基础,农业的发展直接关系到国家的稳定和人民的福祉。随着科技的不断进步,农业科技创新在推动农业现代化和美丽乡村建设中发挥着越来越重要的作用。本文旨在探讨如…...

Java 雪花算法:分布式唯一ID生成的魔法秘籍

欢迎来到本次博客的旅程,今天我们要揭开一个神秘算法的面纱,它就是在分布式系统中广受欢迎的——雪花算法(Snowflake)。这个算法不是用来预测雪花的形状,而是用来生成唯一的ID,保证在分布式系统中&#xff…...

mybatis配置环境流程

mybatis配置环境流程 为啥要用mybatis&#xff1a;通过Mybatis实现快速访问后端pgsql、mysql等数据库。 1.修改pom.xml&#xff0c;添加mybatis相关依赖 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-s…...

UE5增强输入系统入门

UE4直接在项目设置里设置的轴映射和操作映射在UE5中被标记为废弃&#xff0c;改为使用增强输入系统。 这两天学习了下蓝图和c中增强输入系统的使用&#xff0c;在这里分享一下。 学习使用的模板是第三人称模板(蓝图/c)&#xff0c;代码蓝图都参考的模板。 增强输入系统 UE5…...

Python 语法好乱:深度解析与应对策略

Python 语法好乱&#xff1a;深度解析与应对策略 Python&#xff0c;作为一门简洁明了的编程语言&#xff0c;广受编程初学者的喜爱。然而&#xff0c;随着学习的深入&#xff0c;许多学习者会发现Python的语法似乎并不像初看起来那么简单&#xff0c;甚至有时会感到“好乱”。…...

移动端框架:加速移动应用开发与提升跨平台兼容性

在当今快速发展的移动应用领域&#xff0c;开发者们面临着如何快速构建、维护并发布跨平台应用的挑战。为了应对这一挑战&#xff0c;移动端框架应运而生&#xff0c;它们不仅加速了移动应用的开发流程&#xff0c;还提升了应用的跨平台兼容性&#xff0c;并确保了应用性能与原…...

Linux systemctl:掌握软件启动和关闭的利器

Linux systemctl&#xff1a;掌握软件启动和关闭的利器 在 Linux 操作系统中&#xff0c;systemctl 是一个强大的工具&#xff0c;用于管理系统服务的启动、停止和状态监控。本篇博客将深入介绍 systemctl 的使用方法&#xff0c;帮助你更好地掌握软件的启动和关闭。 1. syst…...

Jmeter干货分享:当你的Log viewer不显示日志时,可能是引入的Jar包冲突导致

问题描述 近期使用Jmeter时发现了一个非常奇怪的问题&#xff0c;就是Jmeter是可以正常使用运行脚本&#xff0c;但是在Log viewer中确没有任何日志&#xff0c;如下图&#xff1a; 问题排查过程 真是百思不得其解啊&#xff0c;在网上各种获取资料&#xff0c;大多数都是说跟…...

网络编程TCP

White graces&#xff1a;个人主页 &#x1f649;专栏推荐:Java入门知识&#x1f649; &#x1f649; 内容推荐:Java网络编程(下)&#x1f649; &#x1f439;今日诗词: 壮士当唱大风哥, 宵小之徒能几何&#xff1f;&#x1f439; ⛳️点赞 ☀️收藏⭐️关注&#x1f4ac;卑微…...

C++中的迭代器

目录 摘要 迭代器类别 1. 输入迭代器&#xff08;Input Iterator&#xff09; 2. 输出迭代器&#xff08;Output Iterator&#xff09; 3. 前向迭代器&#xff08;Forward Iterator&#xff09; 4. 双向迭代器&#xff08;Bidirectional Iterator&#xff09; 5. 随机访…...

8.1 Go 包的概念与使用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

JDK 17 序列化是怎么回事

如何序列化&#xff1f;其实很简单&#xff0c;就是根据每个类型&#xff0c;用工厂类调用。逐个完成。 没什么漂亮的代码&#xff0c;只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...

python可视化:俄乌战争时间线关键节点与深层原因

俄乌战争时间线可视化分析&#xff1a;关键节点与深层原因 俄乌战争是21世纪欧洲最具影响力的地缘政治冲突之一&#xff0c;自2022年2月爆发以来已持续超过3年。 本文将通过Python可视化工具&#xff0c;系统分析这场战争的时间线、关键节点及其背后的深层原因&#xff0c;全面…...