news 2026/4/15 16:14:39

基于STM32闭环步进电机控制系统设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于STM32闭环步进电机控制系统设计

(1) 掌握基于 PROTEUS 和 KEIL 的仿真调试方法。
(2) 掌握 uCOS-II 的移植,并采用多任务编程、调试。
(3) 熟悉电机的工作原理和功能,并掌握电机的应用和驱动方法。
1.2 内容

(1) 基本功能:本任务通过输出脉冲控制步进电机的停止、运动、方向。使用 两个按键分别控制步进电机的正转和反转,再次按下这两个按键,步进电机停止, 同时 LCD 显示电机状态信息。
(2) 扩展功能:加入一个转速阈值设置功能,由电位器充当阈值设置器,可设 置目标转速并使电机接近设置的转速。

第 2 章 系统硬件设计

2.1 总体框架设计

图 2-1 硬件框架图

本次任务实践的硬件架构设计如图 2-1 所示。按照设计任务的要求,本次设 计采用的主控芯片为 STM32F103,整体硬件设计以该芯片为中心,由按键输入模 块、LCD 显示模块、电机模块等组成。
2.2 硬件电路设计

(1) 参考 LCD1602 液晶显示屏的芯片资料,在 LCD 显示屏的电路连接中,将 VDD 以及 VSS、VEE 接到电源以及地上。之后再将它的3 个信号控制引脚 RS、RW、 E 以及 8 个数据传输引脚 DO-D7 分别连接到 STM32 的相应引脚上。
(2) 按键输入模块采用两个独立按键,分别连接 STM32 的 PB6、PB7 引脚,公 共端接地。
(3) 电机模块使用直流无刷电机,并采用 L293D 和 IRF540 MOS 管驱动。
(4) 用所谓“六步换向法”,根据转子当前的位置,按照一定的顺序给定子绕 组通电使 BLDC 电机转动。如图 2-2 所示。
永磁体 N-S 交替交换,使位置传感器产生相位差 120°的 H3、H2、H1 方波, 从而产生有效的六状态编码信号:010、011、001、101、100、110,通过逻辑组 件处理产生 V6-V1 导通、V5-V6 导通、V4-V5 导通、V3-V4 导通、V2-V3 导通、V1-V2 导通,也就是说将直流母线电压依次加在 U ->V、w ->V、W ->U、V->U、V->W、
U ->W 上,这样转子每转过一对 N-S 极,V1、V2、V3、V4、V5、V6 各功率管即按 固定组合成六种状态的依次导通。

图 2-2 BLDC 控制框图

图 2-3 120°HAll 换相控制图
对于典型的三相带传感器的 BLDC 电机,有 6 个不同的工作区间,每个区间 中有特定的两相绕组通电。通过检测霍尔传感器,可以得到一个 3 位编码,编码 值的范围从 1 到 6。每个编码值代表转子当前所处的区间。从而提供了需要对哪 些绕组通电的信息。因此程序可以使用简单的查表操作来确定要对哪两对特定的 绕组通电以使转子转动。注意状态"0 和 7"对于霍尔效应传感器而言是无效状态。 软件应该检查出这些值并相应地禁止 PWM。
(5) Proteus 的无刷直流电机模型带有 3 个霍尔传感器,霍尔传感器的输出信 号两相间相差 120 度。与此对应的是电机转子每旋转一周霍尔传感器就能输出
6 种编码状态,如图 2-4 所示。 从图可见,霍尔传感器输 出状态变化一次,就 意味着电机转子转过了 60 度。 据此,可以根据单位时间 T 内捕获的霍尔传感 器输出变化的个数 n 计算出电机的转速 V=60n/T。 根据这一原理,通过控制器 的输入捕获功能 IC 获取到其中 一相霍尔传感器输出信号的周期,就可以比较准 精确地测量到电机的转速。

图 2-4 霍尔位置传感器输出信号波形

图 2-5 硬件原理图

第 4 章 调试过程及结果

图 4-1 仿真过程中

图 4-2 反转时的调速过程 仿真过程中可以看到定时器 PWM 输出之间的切换以及脉宽的变化。

图 4-3 接近稳定时

图 4-4 稳定后增大转速

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 21:34:55

使用Git Commit规范管理lora-scripts项目版本控制

使用 Git Commit 规范管理 lora-scripts 项目版本控制 在 AI 模型微调日益普及的今天,LoRA(Low-Rank Adaptation)凭借其高效、轻量的特点,已成为 Stable Diffusion 和大语言模型定制训练中的主流技术。围绕这一需求,lo…

作者头像 李华
网站建设 2026/4/15 14:11:23

编译时报错如天书?,深度剖析C++元编程调试的隐秘陷阱与破解之道

第一章:编译时报错如天书?C元编程调试的困境与认知重构C元编程赋予开发者在编译期执行计算与类型推导的能力,但其代价是常伴随冗长且晦涩的编译错误。这些错误信息往往深埋于模板实例化栈中,如同天书般难以解读,极大阻…

作者头像 李华
网站建设 2026/4/7 15:33:23

【AIGC高性能计算必修课】:基于C++的吞吐量极限测试与突破方案

第一章:AIGC高性能计算中的C吞吐量挑战在AIGC(人工智能生成内容)的高性能计算场景中,C作为底层系统与计算密集型模块的核心实现语言,面临严峻的吞吐量挑战。随着模型规模扩大和实时性要求提升,传统串行处理…

作者头像 李华
网站建设 2026/4/6 17:40:36

C++分布式系统容错设计:如何在3步内完成故障自愈?

第一章:C分布式系统容错机制概述在构建高可用的C分布式系统时,容错机制是确保系统稳定运行的核心组成部分。由于分布式环境中的节点可能因网络中断、硬件故障或软件异常而失效,系统必须具备检测错误、隔离故障并自动恢复的能力。良好的容错设…

作者头像 李华
网站建设 2026/4/9 12:56:11

errno vs. exceptions vs. std::expected:C++网络编程中错误处理技术大比拼

第一章:C网络编程中的错误处理概述在C网络编程中,错误处理是确保程序健壮性和可靠性的核心环节。由于网络环境的不确定性,诸如连接超时、主机不可达、资源耗尽等问题频繁发生,程序必须能够及时检测并响应这些异常情况。常见网络错…

作者头像 李华
网站建设 2026/4/10 14:39:42

为什么你的游戏画面总是差一截?,深度剖析C++渲染质量关键因素

第一章:为什么你的游戏画面总是差一截?——C渲染质量的宏观视角在高性能游戏开发中,C依然是构建底层图形引擎的首选语言。然而,即便使用了DirectX或Vulkan这样的先进API,许多开发者仍发现最终呈现的画面质感与商业大作…

作者头像 李华