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

目录

目的/效果

一,STC单片机模块

二,步进电机 

2.2 什么是步进电机?

2.2.1 步进电机驱动板

静态参数

动态参数

2.2.2 五线四相 

单相激励步进

双相激励步进

混合激励驱动

2.3 细分驱动

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

2.5 适用场景     

三,创建Keil项目

四,代码 

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


目的/效果

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

一,STC单片机模块

二,步进电机 

 

2.1 什么是步进电机?

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

2.1.1 步进电机驱动板

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

静态参数

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

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

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

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

动态参数

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

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

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

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

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

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

2.1.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.2 细分驱动


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

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

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

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

控制定子绕组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.4 适用场景     

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

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

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

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

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

智能窗帘         

打印机         

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

三,创建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/news/870186.shtml

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

相关文章

基于Java+Vue的场馆预约系统源码体育馆羽毛球馆篮球馆预约

市场前景 市场需求持续增长&#xff1a;近年来&#xff0c;随着人们生活水平的提高和休闲娱乐需求的多样化&#xff0c;各类场馆&#xff08;如体育馆、图书馆、博物馆、剧院等&#xff09;的访问量不断增加。然而&#xff0c;传统的预约方式往往存在效率低下、信息不透明等问…

AI算力中心研究分析

中国 AI 算力中心研究报告 算力产业稳健发展&#xff0c;算力创新能力持续增强&#xff0c;推动我国数字经济量质齐升。 2022 年我国算力规模稳步扩张&#xff0c;算力发展为拉动我国 GDP 增长做出突出贡献&#xff0c;在 2016-2022 年期间&#xff0c;我国算力规模平均每年增…

[计算机网络] VPN技术

VPN技术 1. 概述 虚拟专用网络&#xff08;VPN&#xff09;技术利用互联网服务提供商&#xff08;ISP&#xff09;和网络服务提供商&#xff08;NSP&#xff09;的网络基础设备&#xff0c;在公用网络中建立专用的数据通信通道。VPN的主要优点包括节约成本和提供安全保障。 优…

IT专业入门,高考假期预习指南(C++学习路线)

目录 IT专业入门&#xff0c;高考假期预习指南 一、V C的学习内容: 二、C学习书籍: 三、学习网站: 四、技术学习路线图&#xff1a; IT专业入门&#xff0c;高考假期预习指南 七月来临&#xff0c;各省高考分数已揭榜完成。而高考的完结并不意味着学习的结束&#xff0c;而…

程序设计与问题求解 实验二 循环结构程序设计

目录 引言 一&#xff0e;实验目的&#xff1a; 二、实验内容和步骤: 1. 分析并修改下面程序错误&#xff0c;使之能够正常运行。 2. 编写程序实现以下功能 三、实验小结 引言 我想把大学期间写的材料挑选一些发上来保存一下&#xff0c;这是本人大学期间做的一次实验作业…

小型内衣裤洗衣机哪个牌子好?五大卓越臻品不容错过!

随着科技的发展&#xff0c;市面上也出现许多便利的小家电。其中被多次讨论起来的莫过于是内衣洗衣机&#xff0c;选择一款耐用、质量优秀的内衣洗衣机&#xff0c;不仅可以减少洗衣负担&#xff0c;还能提供高效的洗涤效果。然而&#xff0c;随着内衣洗衣机的爆火&#xff0c;…

Python机器学习推理工程化落地步骤指南

目录 一、引言 二、数据准备 2.1 数据收集 2.2 数据清洗 2.3 特征工程 2.4 数据分割 三、模型训练 3.1 选择算法 3.2 训练模型 3.3 模型评估 3.4 模型调优 四、模型部署 4.1 模型序列化 4.2 构建推理服务 4.3 部署与监控 五、总结 在当今科技飞速发展的时代…

【SD教程】全网最详细的AI绘画提示词语法讲解!(附提示词插件包)

AI绘画提示词如何写&#xff1f;对于入门的小伙伴来说这是一个大问题&#xff0c;提示词写的好&#xff0c;才能有高质量的作品&#xff0c;那今天给大家详细讲解一下&#xff0c;建议点赞收藏&#xff01; 文末附提示词插件 一、SD提示词基础 AI绘画提示词基本规则 1、提示…

AI时代的产品经理的成长之路:可能是小宇宙最全的产品经理指南

2019年&#xff5e;2021年期间&#xff0c;我在做智能写作项目创业的时候&#xff0c;由于当时市场相关产品较少&#xff0c;遇到了问题没有可以参考的竞品。 我们只能一路探索&#xff0c;一路踩坑&#xff0c;一路修正。随着产品的迭代&#xff0c;我也在不断地迭代自己的认…

牛刀小试--三元对角矩阵压缩存储

详细解析博客 对角矩阵的压缩存储_对角矩阵压缩存储-CSDN博客 功能函数: //为N阶对角矩阵初始化成的一维数组分配空间 void Init_opposite_angles_matrix(int *&matrix); //返回二维对角矩阵的值(压缩存取) int get_Value_opposite_angles_matrix(int matrix[],int x,int …

充电桩语音芯片方案选型:让充电体验更智能化

在新能源汽车日益普及的今天&#xff0c;充电桩作为其“加油站”般的存在&#xff0c;其智能化、人性化的设计显得尤为重要。而语音芯片&#xff0c;正是这一智能化趋势下的重要一环。 一、NV020C语音芯片概述 NV020C是一款性能稳定的语音芯片&#xff0c;无需任何外围电路&…

【C++】类和面向对象很懵?其实很简单

有不少朋友会遇到这种情况&#xff0c;在学完C入门的一些知识后&#xff0c;就开始接触类和面向对象的概念&#xff0c;大家去看书、文章的时候都会先抛出一大堆的概念&#xff0c;导致我们听得很懵。那么这篇文章将言简意赅&#xff0c;理解类和面向对象其实很简单&#xff01…

apple watch程序出错 Cannot launch apps while in nightstand mode

开发的时候运行apple watch程序出错&#xff1a; ailure Reason: The request was denied by service delegate (IOSSHLMainWorkspace) for reason: Busy ("Cannot launch apps while in nightstand mode"). 这是因为&#xff1a; 将Apple Watch放在充电器上并直立…

.net C# 使用网易163邮箱搭建smtp服务,实现发送邮件功能

功能描述&#xff1a;使用邮箱验证实现用户注册激活和找回密码。邮箱选择网易163作为smtp服务器。 真实测试情况&#xff1a;第一种&#xff1a;大部分服务器运行商的25端口默认是封禁的&#xff0c;可以联系运营商进行25端口解封&#xff0c;解封之后可以使用25端口。第二种&…

matlab R2016b安装cplex12.6,测试时cplex出现出现内部错误的解决方法

问题场景 网上搜索matlabyalmipcplex的安装教程&#xff0c;跟着步骤操作即可&#xff0c;假如都安装好了&#xff0c;在matlab中测试安装是否成功&#xff0c;出现以下问题&#xff1a; 1、matlab中设置路径中添加了yalmip和cplex路径&#xff0c;在命令窗口中输入yalmiptest…

视频号矩阵系统源码,实现AI自动生成文案和自动回复私信评论,支持多个短视频平台

在当今短视频蓬勃发展的时代&#xff0c;视频号矩阵系统源码成为了自媒体人争相探索的宝藏。这一强大的技术工具不仅能帮助我们高效管理多个短视频平台&#xff0c;更能通过AI智能生成文案和自动回复私信评论&#xff0c;为自媒体运营带来前所未有的便利与效率。 一、视频号矩…

Xshll连接服务器【过程记录】

背景&目标 开学老师提供了一款服务器&#xff0c;可以网页端打开&#xff0c;但是不可进行上传文件、复制黏贴指令。 希望连接Xshll进行更有效的学习活动&#xff01; 配置过程 一、已知信息 二、配置 使用第一部分&#xff0c;先打通隧道。 【选择公钥时&#xff0c;没…

CTF php RCE (四)

0x08 取反以及异或、或 这两个东西呢相当的好玩&#xff0c;也能够达到一下小极限的操作 <?php error_reporting(0); if(isset($_GET[code])){$code$_GET[code];if(strlen($code)>40){die("This is too Long.");}if(preg_match("/[A-Za-z0-9]/",$…

【游戏客户端】大话slg玩法架构(二)背景地图

【游戏客户端】大话slg玩法架构&#xff08;二&#xff09;背景地图 大家好&#xff0c;我是Lampard家杰~~ 今天我们继续给大家分享SLG玩法的实现架构&#xff0c;关于SLG玩法的介绍可以参考这篇上一篇文章&#xff1a;【游戏客户端】制作率土之滨Like玩法 PS&#xff1a;和之前…

Linux+InternStudio 关卡

ssh连接 端口映射 本地