51单片机STC89C52RC——16.1 五项四线步进电机

目的/效果

让步进电机  正向转90度,逆向转90度

一,STC单片机模块

二,步进电机 

 

2.2 什么是步进电机?

步进电机可以理解为:是一个按照固定步幅运动的“小型机器”。它与普通电机不同点在于,普通电机可以持续旋转,而步进电机按照特定的步数或者角度来移动。它每次只能移动一定的距离或者旋转一定的角度,运动更像是按照固定的步伐一步一步地走。这种特性让步进电机在需要精确控制位置和速度的场景中非常有用,比如打印机、机器人、数控机床等。      

2.2.1 步进电机驱动板

步进电机的控制需要按照特定的顺序激活线圈,以产生旋转。驱动板充当了控制器的角色,它能提供正确的电流和顺序来激活步进电机的各个线圈,使得它按照预期的方式运转。步进电机的操纵需要精确的电流控制和时序激活,而驱动板能提供这种控制,让步进电机按照设定的步数或角度进行精确的运动。用通俗的语言解释一下就是,步进电机是个没有“脑子”的机器,需要芯片(ULN2003)把单片机发送过来的电信息,转化为步进电机能够“处理”的脉冲信号,并作出相应处理。

静态参数

相数:线圈的组数,两相步进电机步距角一般为 1.8°,三相的步进电机步距角为 1.2°,相数越多步距角越小。

步距角:一个脉冲信号所对应的电机转动的角度,这个步距角他不一定是电机实际工作的真正步距角,真正的步距角与驱动器的细分有关。

拍数:完成一个磁场周期性变化所需的脉冲数。

定位转矩:电机在不通电状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成的)。

动态参数

步距角精度:步进电机转动一个步距角度的实际值与理论值的误差。用百分比表示:误差/步距角 *100%。

失步:电机运转的步数,不等于理论上的步数。也可以叫做丢步,一般都是因负载过大或者是频率过快。

最大空载起动频率:不加负载的情况下,能够直接起动的最大频率。

最大空载运行频率:电机不带负载的最高转速频率。

运行距频特性:输出转矩与输入脉冲频率的关系,是电机选型的根本依据。要在该曲线之下才能保证运行时不丢步。

电机正反转控制:改变通电顺序而改变电机的正反转。 

2.2.2 五线四相 

五线四相指的是它的线数相数。在这个28BYJ48步进电机中,有五根线用于连接,四相则表示它具有四组线圈,每个线圈都能独立控制。+为公共端,分A、B、C、D四相

 

 

 

分别给ABCD导通,电机就会转。

单相激励步进

每次通电产生磁性的相只有ABCD其中的一个

步序ABCDP1(HEX)
110000x08
201000x04
300100x02
400010x01

 

		P1=0x08;//A导通	 Delay_ms(10);P1=0x04;//B导通Delay_ms(10);P1=0x02;//C导通Delay_ms(10);P1=0x01;//D导通Delay_ms(10); 
双相激励步进

转子却被固定在两个绕阻的极性中间

步序ABCDP1(HEX)
111000x0C
201100x06
300110x03
410010x09
        P1=0x0C;//AB导通	 Delay_ms(10);P1=0x06;//BC导通Delay_ms(10);P1=0x03;//CD导通Delay_ms(10);P1=0x09;//DA导通Delay_ms(10); 
混合激励驱动

双相激励的过程中,也可以在装换相位时加一个关闭相位的状态而产生走半步的现象,这将步进电机的整个步距角一分为二

步序ABCDP1(HEX)
110000x08
211000x0C
301000x04
401100x06
500100x02
600110x03
700010x01
810010x09

 

P1=0x08;//A导通	 Delay_ms(10);P1=0x0C;//AB导通	 Delay_ms(10);P1=0x04;//B导通Delay_ms(10);P1=0x06;//BC导通Delay_ms(10);P1=0x02;//C导通Delay_ms(10);P1=0x03;//CD导通Delay_ms(10);P1=0x01;//D导通Delay_ms(10); 		P1=0x09;//DA导通Delay_ms(10); 

2.3 细分驱动


将步距角以电流分配方法进行细分化的技术。一般电机产品都会集成这种技术,使用时只需细分数即可实现。

原理磁场强度和电流大小成正比

如果Ia = Ib 那么转子将停在相邻两个线圈的中间,如果电流不相等,转子将停在电流较大的一侧;通过改变输入电流的比例,就可以比原来更小的步距角进行驱动;可进行超微小角度,更加平滑的运转,有效地降低振动和噪音的驱动方法。 

2.4 通过数字信号控制旋转位置转速

控制定子绕组ABCD周期性、交替得电,进而控制步进电机一步一步的向前运动的这个控制器就是步进电机驱动器。

电机的旋转位置只取决于脉冲个数,转速只取决脉冲信号的频率

角位移=脉冲个数X步距角。

步进电机的步距角计算公式为:θ=360°/(Z×m×k)。其中,θ是步距角,Z是转子齿数,m是定子绕组的对数,k是通电方式系数。对于单拍通电方式,k=1;对于单双拍通电方式,k=2。1

另外,步距角也可以通过以下公式计算:θ=360°/(转子齿数×运行拍数)。以常规二、四相,转子齿为50齿电机为例,四拍运行时步距角为θ=360°/(50×4)=1.8°,八拍运行时步距角为θ=360°/(50×8)=0.9°。

请注意,步距角是步进电机运动的基础,它取决于电机上的磁极总数,且步距角越小,运转的平稳性越好。

2.5 适用场景     

步进电机有以下的三个特点:

其一是精准定位,步进电机能够准确控制位置,适用于需要精确控制位置和速度的应用。

其二是固定步进,它能按照固定步幅移动,使其在需要确定性移动的应用中很有用。

其三是低速高扭矩:步进电机在低速和高扭矩方面表现出色,这让它们在需要大力矩但不需要高速旋转的场景中很有用。

故而根据以上的三个特性,可以用到那些项目里呢?举几个我曾接触使用到步进电机的项目吧!同学们可以发挥自己的想象力哈哈哈...        

智能窗帘         

打印机         

图书馆取书机器人的机械臂关节处的动力

三,创建Keil项目

详细参考:51单片机STC89C52RC——创建Keil项目-CSDN博客

四,代码 

完整代码参考《https://gitee.com/oopxiajun/STC89C52》

main.c

#include <REGX52.H>
#include "Delay.h"
#include "key.h"
#include "StepMotor.h"
#include "LCD1602.h"
//模式 :1-正转,2-反转
int Model=1;
/*** 函    数:主函数* 参    数:无* 返 回 值:无*/
void main()
{   int step=0;LCD_Init();//顺时针转90度StemMotor_Run(1,90,1);Delay_ms(1000);//逆时针转90度StemMotor_Run(2,90,2);while(1){   	}
}
#include <REGX52.H>
#include "delay.h"
int StepTime = 1000;//steptime表示每步的时间
//八拍
unsigned char code Rotation[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};/*** 函    数:控制步进电机运行* 参    数:Step 转速(单步暂停时长)Angle 角度(0-360)Direction 转动方向(1-顺时针,2-逆时针)* 返 回 值:无*/
void StemMotor_Run(int Step,int Angle,int Direction)
{int i=0;Angle=(int)(Angle/0.72);while((Angle--)>=0){if(Direction==1)//正转{//每执行一次下面的循环,步进电机转角0.72度 ,//步进电机运行1周,需执行500次下面的循环for(i=0;i<8;i++){P1=Rotation[i];//步距角0.09度,4000次转一圈Delay_ms(Step);}}else if(Direction==2)//反转{for(i=7;i>=0;i--){P1=Rotation[i];Delay_ms(Step);}}	}
}

 

五,代码编译、下载到51单片机

代码编译请参考

《51单片机STC89C52RC——代码编译-CSDN博客》

代码下载请参考

《51单片机STC89C52RC——STCAI-ISP代码下载-CSDN博客》

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

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

相关文章

CompletionService

必备知识&#xff1a; 三种创建线程的方式 java线程池 CompletionService是Java并发库中的一个接口&#xff0c;用于简化处理一组异步任务的执行和结果收集。它结合了Executor和BlockingQueue的功能&#xff0c;帮助管理任务的提交和完成。CompletionService的主要实现类是Exe…

前端必修技能:高手进阶核心知识分享 - CSS 阴影属性详解

CSS 涉及设计到阴影的相关内容包括三个方面&#xff1a;box-shadow属性&#xff08;盒子阴影&#xff09;、 text-shadow属性&#xff08;文本阴影&#xff09;、drop-shadow滤镜。 本篇文章旨在详细介绍和分析三种阴影的具体参数设置和典型用例。 box-shadow属性&#xff08;…

04.C1W3.Vector Space Models

往期文章请点这里 目录 Vector Space ModelsWord by Word and Word by DocWord by Document DesignWord by Document DesignVector Space Euclidean DistanceEuclidean distance for n-dimensional vectors Euclidean distance in PythonCosine Similarity: IntuitionCosine S…

STM32-SPI和W25Q64

本内容基于江协科技STM32视频学习之后整理而得。 文章目录 1. SPI&#xff08;串行外设接口&#xff09;通信1.1 SPI通信简介1.2 硬件电路1.3 移位示意图1.4 SPI时序基本单元1.5 SPI时序1.5.1 发送指令1.5.2 指定地址写1.5.3 指定地址读 2. W25Q642.1 W25Q64简介2.2 硬件电路2…

嵌入式C语言面试相关知识——内存管理(不定期更新)

嵌入式C语言面试相关知识——内存管理&#xff08;不定期更新&#xff09; 一、博客声明二、自问题目1、嵌入式系统的内存布局是怎么样的&#xff1f;2、动态内存分配在嵌入式系统中的使用有什么注意事项&#xff1f;3、什么是内存碎片&#xff0c;如何减少内存碎片&#xff1f…

win11自动删除文件的问题,安全中心提示

win11自动删除文件的问题&#xff0c;解决方法&#xff1a; 1.点击任务栏上的开始图标&#xff0c;在显示的应用中&#xff0c;点击打开设置。 或者点击电脑右下角的开始也可以 2.点击设置。也可以按Wini打开设置窗口。 3.左侧点击隐私和安全性&#xff0c;右侧点击Windows安全…

我国网络安全领域有哪些法律法规?主要内容是什么?

1. 背景介绍 网络信息安全方面的法规在全球范围内都有相应的立法&#xff0c;我们主要的立法有《网络安全法》、《密码法》、《数据安全法》以及《个人信息保护法》。当前也有一些相关的条例和管理办法&#xff0c;接下来就为大家一一介绍。 2. 法规介绍 在中国&#xff0c;…

多线程(进阶)

前言&#x1f440;~ 上一章我们介绍了线程池的一些基本概念&#xff0c;今天接着分享多线程的相关知识&#xff0c;这些属于是面试比较常见的&#xff0c;大部分都是文本内容 常见的锁策略 乐观锁 悲观锁 轻量锁 重量级锁 自旋锁 挂起等待锁 可重入锁和不可重入锁 互斥…

接口测试分析、设计以及实现

接口相关理论 ui功能测试和接口测试哪个先执行&#xff1f;–为什么 结论&#xff1a;接口测试先执行 原因&#xff1a;ui功能测试需要等待前端页面开发完成、后台接口开发完后且前端与后端联调完成。ui功能测试与接口测试的区别&#xff1f; ui功能&#xff1a;功能调用&am…

【原理+使用】DeepCache: Accelerating Diffusion Models for Free

论文&#xff1a;arxiv.org/pdf/2312.00858 代码&#xff1a;horseee/DeepCache: [CVPR 2024] DeepCache: Accelerating Diffusion Models for Free (github.com) 介绍 DeepCache是一种新颖的无训练且几乎无损的范式&#xff0c;从模型架构的角度加速了扩散模型。DeepCache利…

【因果推断】优惠券政策对不同店铺的影响

这次依然是用之前rossmann店铺竞赛的数据集。 之前的数据集探索处理在这里已经做过了&#xff0c;此处就不再赘述了CSDN链接 数据集地址&#xff1a;竞赛链接 这里探讨数据集中Promo2对于每家店铺销售额的影响。其中&#xff0c;Promo2是一个基于优惠券的邮寄活动&#xff0c;发…

SQL Server 2022 中的 Tempdb 性能改进非常显著

无论是在我的会话中还是在我写的博客中&#xff0c;Tempdb 始终是我的话题。然而&#xff0c;当谈到 SQL Server 2022 中引入的重大性能变化时&#xff0c;我从未如此兴奋过。他们解决了我们最大的性能瓶颈之一&#xff0c;即系统页面闩锁并发。 在 SQL Server 2019 中&#x…

Go语言如何入门,有哪些书推荐?

Go 语言之所以如此受欢迎&#xff0c;其编译器功不可没。Go 语言的发展也得益于其编译速度够快。 对开发者来说&#xff0c;更快的编译速度意味着更短的反馈周期。大型的 Go 应用程序总是能在几秒钟之 内完成编译。而当使用 go run编译和执行小型的 Go 应用程序时&#xff0c;其…

如何利用Github Action实现自动Merge PR

我是蚂蚁背大象(Apache EventMesh PMC&Committer)&#xff0c;文章对你有帮助给项目rocketmq-rust star,关注我GitHub:mxsm&#xff0c;文章有不正确的地方请您斧正,创建ISSUE提交PR~谢谢! Emal:mxsmapache.com 1. 引言 GitHub Actions 是 GitHub 提供的一种强大而灵活的自…

SSM中小学生信息管理系统 -计算机毕业设计源码02677

摘要 随着社会的发展和教育的进步&#xff0c;中小学生信息管理系统成为学校管理的重要工具。本论文旨在基于SSM框架&#xff0c;采用Java编程语言和MySQL数据库&#xff0c;设计和开发一套高效、可靠的中小学生信息管理系统。中小学生信息管理系统以学生为中心&#xff0c;通过…

赤壁之战的烽火台 - 观察者模式

“当烽火连三月&#xff0c;家书抵万金&#xff1b;设计模式得其法&#xff0c;千军如一心。” 在波澜壮阔的三国历史长河中&#xff0c;赤壁之战无疑是一场改变乾坤的重要战役。而在这场战役中&#xff0c;一个看似简单却至关重要的系统发挥了巨大作用——烽火台。这个古老的…

OpenAI的崛起:从梦想到现实

OpenAI的崛起不仅是人工智能领域的重大事件&#xff0c;也是科技史上一个引人注目的篇章。本文将深入探讨OpenAI从创立到如今的演变过程&#xff0c;分析其成功的关键因素&#xff0c;以及未来的发展方向。 一、OpenAI的初创期&#xff1a;理想主义与混乱并存 OpenAI成立于20…

插入排序——C语言

假设我们现在有一个数组&#xff0c;对它进行排序&#xff0c;插入排序的算法如同它的名字一样&#xff0c;就是将元素一个一个插入到合适的位置&#xff0c;那么&#xff0c;该如何做呢&#xff1f; 如果我们要从小到大进行排序的话&#xff0c;步骤如下&#xff1a; 1.对于…

区间最值问题-RQM(ST表,线段树)

1.ST表求解 ST表的实质其实是动态规划&#xff0c;下面是区间最小的递归公式&#xff0c;最大只需将min改成max即可 f[i][j] min(f[i][j - 1], f[i (1 << j - 1)][j - 1]); 二维数组的f[i][j]表示从i开始连续2*j个数的最小/大值。 例如&#xff1a;我们给出一个数组…

uniapp启动安卓模拟器mumu

mumu模拟器下载 ADB&#xff1a; android debug bridge &#xff0c; 安卓调试桥&#xff0c;是一个多功能的命令行工具&#xff0c;他使你能够与连接的安卓设备进行交互 # adb连接安卓模拟器 adb connect 127.0.0.1:port # 查看adb设备 adb deviceshubuilderx 有内置的adb&a…