步进电机原理及驱动

2023-11-12

这里把步进电机的资料做个整合

步进电机是什么

什么是步进电机?
步进电机是将电脉冲信号,转变为角位移或线位移的开环控制电机,又称为脉冲电机。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响。当步进驱动器接收到一个脉冲信号时,它就可以驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”。
在这里插入图片描述

原理

下面是原理
步进电机是通过脉冲信号来进行控制,每输入一个脉冲信号,步进电机前进一步。步进电机旋转的步距角,是在电机结构的基础上等比例控制产生的,如果控制电路的细分控制不变,那么步进旋转的步距角在理论上是一个固定的角度。在实际工作中,电机旋转的步距角会有微小的差别,主要是由于电机结构上的固定有误差产生的,而且这种误差不会积累。
(就是说每一步之间可能有微小差距,但整体转一圈是固定的200步,这个不变,下面会解释)
在这里插入图片描述

步进电机的总极数越大,加工精度的要求就会越高。通常工业用混合型步进电机的步距角是1.8度,就是200极。(极等同于步)
步进电机组成最主要的就是转子定子部分

定子

第一个概念,定子,就是由电流控制磁场方向,满足安培右手螺旋定律
步进电机的电流流过定子产生磁场的过程叫做励磁
在这里插入图片描述
在这里插入图片描述
拿常用的二相四线举例
在这里插入图片描述
通常所说的二相步进电机,电机转子的旋转,包含不同磁极的磁场相斥和相吸实现的。如上图所示,A相产生N极磁场吸引转子的S极,B相产生S极磁场吸引转子的N极,使定子产生旋转的动力。如果改变A、B相定子线圈的电流方向,电机会产生另一步的旋转。连续改变A、B相定子线圈的电流方向,电机会产生连续的旋转。
在这里插入图片描述
如上图所示,电机的运动是通过改变电流在电机中的流动来实现的,电子转子排斥B相磁极的定子,吸引A相磁极的定子,这就产生了另一个步进操作。

定子的种类

在这里插入图片描述
步进电机按照定子上绕组来分类,共有二相、三相五相等系列。目前最受欢迎的是两相混合式步进电机,约占97%以上的市场份额,其原因是性价比高,配上细分驱动器后效果良好。

该种电机的基本步距角为1.8度/步,配上半步驱动器后,步距角减少为0.9度,配上细分驱动器后。其步距角可细分达256倍(0.007度/微步)。由于摩檫力和制造精度等原因,实际控制精度略低。同一步进电机可配不同细分的驱动器以改变精度的效果。(细分驱动器后面介绍)

转子及其种类

转子被定子环绕在中间受定子磁场变化产生转动

在这里插入图片描述
按照转子分类,有三种主要类型:反应式(VR型)、永磁式(PM型)、混合式(HB型)。

反应式
定子上有绕组,绕组由软磁材料组成。其结构简单、成本低、步距角小,可达1.2度,但动态性能差,效率低、发热大,可靠性难以保证。

永磁式
永磁式步进电机的转子用永磁材料制成,转子的极数与定子的极数相同。其特点是动态性能好、输出力矩大,但这种电机度差,步距角大(一般为7.5度或15度)。(很好理解,如果磁性太强,再排斥和吸引的时候力也就更大)

混合式
混合式步进电机综合了反应式和永磁式的优点,其定子上有很多相绕组,转子上采用永磁材料,转子和定子均有多个小齿以提高步距精度。其特点是输出力矩大、动态性能好、步距角小,但结构复杂、成本相对较高。
说到这里
肯定有一个疑问,就是上面带转子齿是怎么实现转动的

在这里插入图片描述
给定子绕组通电时,转子齿偏离定子齿一个角度。
由于励磁磁通力沿磁阻最小路径通过,因此对转子产生电磁吸力,迫使转子齿转动,
当转子转到与定子齿对齐位置时,因转子只受径向力而无切线力,故转矩为零,转子被锁定在这个位置上。由此可见:错齿是助使步进电机旋转的根本原因!!!

找到一个步进电机的拆解图
在这里插入图片描述

工作方式

接下来了解几个概念
“相”-绕组个数
“齿距角” -转子相邻两齿的夹角
“拍”-绕组通电状态。如:三拍表示一个周期共有3种通电状态,六拍表示一个周期有6种通电状态,每个周期步进电机转动一个齿距角
“步距角”- 转子每拍转动的角度
步距角θ=360/(NZ)
N:步进电机的拍数 Z:转子的齿数。
(注意:齿距角步距角不一样)

结论步距角反映出步进电机的精度,步距角越小,该步进电机能够输出的单位位移量越小。步距角与电机本身结构(转子齿数)和工作方式(拍数)有关

工作方式,这里拿三相步进电机举例

单拍方式

在这里插入图片描述
A相绕组通电,B、C 相不通电。
由于在磁场作用下,转子总是力图旋转到磁阻最小的位置,故在这种情况下,转子必然转到左图所示位置:1、3齿与A、A′极对齐。
在这里插入图片描述
同理,B相通电时,转子会转过30°角,2、4齿和B、B´ 磁极轴线对齐;当C相通电时,转子再转过30°角,1、3齿和C´、C 磁极轴线对齐。

这种工作方式下,三个绕组依次通电一次为一个循环周期,一个循环周期包括三个工作脉冲,所以称为三相单三拍工作方式。
按A->B->C->A-> ……的顺序给三相绕组轮流通电,转子便一步一步转动起来。每一拍转过30°(步距角),每个通电循环周期(3拍)转过90°(一个齿距角)。

双拍方式

在这里插入图片描述
按AB->BC->CA的顺序给三相绕组轮流通电。每拍有两相绕组同时通电。
在这里插入图片描述

与单三拍方式相似,双三拍驱动时每个通电循环周期也分为三拍。每拍转子转过30° (步距角),一个通电循环周期(3拍)转子转过90°(齿距角)。

单双拍方式

在这里插入图片描述
按A->AB->B->BC->C->CA的顺序给三相绕组轮流通电。这种方式可以获得更精确的控制特性。
在这里插入图片描述
A相通电,转子1、3齿与A、A’ 对齐。
在这里插入图片描述
A、B相同时通电,A、A’ 磁极拉住1、3齿,B、B’ 磁极拉住2、4齿,转子转过15,到达左图所示位置。
在这里插入图片描述
B 相通电,转子2、4齿与B、B´ 对齐,又转过15°。
在这里插入图片描述
B、C相同时通电,C’ 、C 磁极拉住1、3齿,B、B’ 磁极拉住2、4齿,转子再转过15°。

总结
单拍——实现简单,性能较差
双拍——转矩较大,带负载能力较强
单双拍——步距角较小,控制精度较高

通电方式

以下以两相四线举例讲通电方式

单拍控制
在这里插入图片描述

在这里插入图片描述
双拍控制

在这里插入图片描述
在这里插入图片描述
单双拍控制
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

下面讲驱动器部分

驱动器

用的是A4988驱动器
datasheet下载地址
在这里插入图片描述

在这里插入图片描述
datasheet里的图
技术手册

主要就是几个引脚:
DIR:控制正反转,=1:正转,=0:反转;
STEP:接PWM,每个脉冲转对应一个角度;(频率要小于50khz)
sleep,reset:通常短接;
MS1,MS2,MS3:MS1和MS3引脚具有100kΩ的下拉电阻,MS2引脚具有50kΩ的下拉电阻。
在这里插入图片描述
控制细分的引脚
000:全步
100:二分步
010:4分步
110:8分步
111:16分步

VDD:接3.3V或者5V;
VMOT:电机直流供电:8~35V;
1B 1A 2A 2B:接步进电机 ,通常四相电机红绿为一组,蓝黄为一组,即1A,1B接步进电机的一组线圈,2A,2B接步进电机的一组线圈

驱动程序

接好线之后
step控制速度,dir控制方向
这里给个简单程序
51版

#include<reg52.h>

typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;

u8 TR0H;
u8 TR0L;
bit flag_5s=0;

u32 PeriodCnt = 0;
u8 HighRH = 0;
u8 HighRL = 0;
u8 LowRH = 0;
u8 LowRL = 0;
u8 T1RH = 0;
u8 T1RL = 0;

sbit STEP=P3^2;//step引脚定义
sbit DIR=P3^3;//Dir引脚定义

void ConfigPWM(u16 fr, u8 dc);//配置PWM,fr频率,dc占空比
void ConfigTimer1(u8 ms);
延时程序 11.0592mhz
/oid delayms(u16 t)
//{
//	u16 i,j;
//	for(i=t;i>0;i--)
//		for(j=114;j>0;j--);
//}
void main()
{
	
	DIR=1;
	ConfigTimer1(100);
	ConfigPWM(500,50);//pwn配置
	EA = 1;//打开总中断
	
	while(1)
	{
		if(flag_5s==1)
		{
			flag_5s=0;
			if(DIR)
			{
				DIR=0;
			}
			else
			{
				DIR=1;
			}
		}
	}
	
	

}

void ConfigTimer1(u8 ms)
{
	u32 temp;

	temp=11059200/12;
	temp=(temp*ms)/1000;
	temp=65535-temp;
	TR0H=(u8)(temp>>8);
	TR0L=(u8)temp;
	TMOD&=0XF0;
	TMOD|=0x10;
	TH1=TR0H;
	TL1=TR0L;
	ET1=1;
	TR1=1;


}
//pwm配置程序
void ConfigPWM(u16 fr, u8 dc)
{
    u16 high, low;

    PeriodCnt = (11059200/12)/fr;
    high = (PeriodCnt*dc)/100;
    low = PeriodCnt - high;
    high = 65536 - high;
    low = 65536 - low;
    HighRH = (u8)(high>>8);
    HighRL = (u8)high;
    LowRH = (u8)(low>>8);
    LowRL = (u8)low;

    TMOD &= 0xF0;
    TMOD |= 0x01;
    TH0 = HighRH;
    TL0 = HighRL;
    ET0 = 1;
    TR0 = 1;
    STEP = 1; 
}

//pwm中断程序
void InterruptTimer0() interrupt 1
{
    if(STEP == 1)
    {
        TH0 = LowRH;
        TL0 = LowRL;
        STEP = 0;
    }
    else
    {
        TH0 = HighRH;
        TL0 = HighRL;
        STEP = 1;
    }
}

void Timer1()interrupt 3
{
	static u8 times=0;

	TH1=TR0H;
	TL1=TR0L;
	times++;
	if(times>200)
	{
		times=0;
		flag_5s=1;
	}
}


效果是5s正转5s反转

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

步进电机原理及驱动 的相关文章

  • 跨平台的桌面应用程序开发框架Electron

    electron electron Stars 109 3k License MIT Electron 是一个基于 Node js 和 Chromium 的开源框架 允许使用 JavaScript HTML 和 CSS 编写跨平台的桌面应用
  • Elasticsearch系列---聚合查询原理

    概要 本篇主要介绍聚合查询的内部原理 正排索引是如何建立的和优化的 fielddata的使用 最后简单介绍了聚合分析时如何选用深度优先和广度优先 正排索引 聚合查询的内部原理是什么 Elastichsearch是用什么样的数据结构去执行聚合
  • linux 下交换 esc与cap的方法。

    有两种方法 1 xmodmap 2 dconf editer 操作如下图所示 xkb options 改为图片所示
  • STM32项目 -- 选题分享(部分)

    前言 分享部分STM32项目选题以及实现效果 暂时没有分享代码 列表 编号 项目名称 难度 使用器件 实现效果 1 基于STM32的智能万用表设计 3 STM32F103C8T6 OLED 1 测量电压 2 OLED显示测量值 3 实现层级
  • ASP.NET-----Repeater数据控件的用法总结

    一 Repeater控件的用法流程及实例 1 首先建立一个网站 新建一个网页index aspx 2 添加或者建立APP Data数据文件 然后将用到的数据库文件放到APP Data文件夹中 3 打开数据库企业管理器 数据库服务器为loca
  • 【帧同步】关于状态同步的经验分享

    方案 低延迟环境下 比如国内 局域网情况下 写个同步那都不是难事 是个客户端看点书就会写了 难点在于 如何去处理 高延迟 以及及时响应的情况 我举个例子 fps或者tank游戏中 子弹和炮弹的射速是很快的 如果两边在对轰过程中 又碰到了 附
  • Qt (ui界面)信号与槽函数 组件连接

    重点 信号与槽连接机制 难点 信号与槽函数的 参数使用 头函数 ifndef WIDGET H define WIDGET H include
  • 登录页面,表单提交,参数不显示

    一开始的form
  • curl下载文件

    我的个人博客 逐步前行STEP curl url o filename progress 下载url的内容到文件filename中 并显示下载进度
  • 深度学习面试八股文(2023.9.06)

    一 优化器 1 SGD是什么 批梯度下降 Batch gradient descent 遍历全部数据集算一次损失函数 计算量开销大 计算速度慢 不支持在线学习 随机梯度下降 Stochastic gradient descent SGD 每
  • 三种常用的排序方法图解及C语言实现(选择排序,冒泡排序,快速排序)

    选择排序 冒泡排序 快速排序 选择排序 选择排序是最简单直观的一种算法 选择排序是不稳定排序 基本思想 首先在未排序序列中找到最小 大 元素 存放到排序序列的起始位置 然后 再从剩余未排序元素中继续寻找最小 大 元素 然后放到已排序序列的末
  • 迷宫 蓝桥杯 602

    题目描述 本题为填空题 只需要算出结果后 在代码中使用输出语句将所填结果输出即可 下图给出了一个迷宫的平面图 其中标记为 1 的为障碍 标记为 0 的为可以通行的地方 010000 000100 001001 110000 迷宫的入口为左上
  • Java中的锁详解说明

    转自 Java中的锁详解说明 下文笔者讲述java中锁的详解 如下所示 java锁简介 锁与synchronized同步块具有同样的功能 是一种线程同步机制 但锁比Java中的synchronized同步块更复杂 因为锁是由synchron
  • 【Fiddler】从零开始学习Fiddler

    文章目录 Fiddler的工作原理 Fiddler的代理模式 1 流模式 Streaming 2 缓冲模式 Buffering Fiddler工具条按钮介绍 如何使用Fiddler抓取https包 如何使用Fiddler抓取手机包 Fidd
  • conda & yaml

    conda导出已有环境 环境会被保存在environment yaml文件中 conda env export gt environment yaml 当我们想再次创建该环境 或根据别人提供的 yaml文件复现环境时 就可以通过下面的命令来
  • tensorflow中tf.keras.models.Sequential()用法

    tensorflow中tf keras models Sequential 用法 Sequential 方法是一个容器 描述了神经网络的网络结构 在Sequential 的输入参数中描述从输入层到输出层的网络结构 model tf kera
  • 第一个实例:QT实现汽车电子仪表盘

    目录 1 实现效果 1 1 视频演示 1 2 实现效果截图 2 生成的安装程序 3 功能概述 4 具体实现 5 QT扩展介绍 5 1 QT介绍 5 2 QT历史发展 5 3 QT平台支持 5 4 Qt Creator 5 5 优势 5 5
  • java.lang.reflect.InvocationTargetException

    产生原因 1 包冲突 有重复包或者缺少包 2 项目jdk和部署jdk版本不一样 导致InvocationTargetException异常信息返回一个空值 没有调用invoc里的重写消息方法 3 映射文件发生改变 对于不同原因的解决 1 包
  • 最小生成树算法之Prim算法

    生成树 一个连通图的生成树是一个极小连通子图 它含有图中全部n个顶点和构成一棵树的 n 1 条边 连通图由一次遍历就可以产生生成树 由深度优先遍历得到的生成树称为深度优先生成树 由广度优先遍历得到的生成树称为广度优先生成树 一个连通图的生成
  • 为什么不用SSH了?SSH过时了吗?

    ssh最重要的还是后端处理 前端渲染部分已经被如今的互联网公司废掉了 例如用Vue等框架替代 而且随着docker一波热 相比早期 一站到底 的大而全 现在很多非核心的模块 被细化拆分 人称微服务 互联网公司节奏很快 迭代也很快 天生对小而

随机推荐

  • 计算机视觉项目-文档扫描OCR识别

    欢迎来到本博客 本次博客内容将继续讲解关于OpenCV的相关知识 作者简介 目前计算机研究生在读 主要研究方向是人工智能和群智能算法方向 目前熟悉python网页爬虫 机器学习 计算机视觉 OpenCV 群智能算法 然后正在学习深度学习的相
  • Python报错:[function object has no attribute plot]原因解释

    错误的翻译为 对象没有这个属性 plot 先看一个原先错的小例子的代码及结果 然后再看一下自己python的文件matplotlib的目录 现在应该一目了然了吧 错误的原因我把matplotlib里面的pyplot类中的plot 方法as为
  • 玩转 Numpy 的精选习题

    玩转 Numpy 的精选习题 一 1 打印 numpy 版本 import numpy as np print np version gt 1 16 5 2 创建 10 个元素空向量 Z np zeros 10 print Z gt 0 0
  • Tornado框架基础 -- (一)Tornado的介绍

    1 什么是Tornado 全称为Tornado Web Server 是一种Web服务器软件的开源版本 2 特点 1 作为Web框架 是一个轻量级的Web框架 类似于另一个web框架Web py 其拥有异步非阻塞IO的处理方式 2 作为We
  • SSLHandshake aborted:ssl... 解决方法

    最近有用户报出了这个问题 SSLHandshake aborted ssl 0x7b8b5260 I O error during system call Read only file system 百度查了下 可能原因 1 服务或者客户端
  • 正则表达式验证邮件格式

    public override void Checked string vInputName this SqlCheck ExecutePara InputName string vValue ObjectHelper GetString
  • PCL 偏度平衡滤波(SKF)算法

    目录 一 算法原理 1 原理概述 2 参考文献 二 代码实现 三 结果展示 一 算法原理 1 原理概述 SKF算法假定点云中自然地面点的高程概率密度分布服从正态分布 非地面点会使得点云中点的高程概率密度分布偏离正态分布 呈现出偏态分布 偏度
  • CRC循环冗余校验码

    CRC校验 CRC Cyclic Redundancy Check 即循环冗余检验码 是数据通信领域中最常用的一种差错校验码 其特征是信息字段和校验字段的长度可以任意选定 基本原理 在K位信息码后再拼接R位的校验码 整个编码长度为N位 因此
  • 服务器硬件测试选型

    面对琳琅满目的服务器硬件品牌和五花八门的硬件型号规格 如何选择高性价比的硬件配置 是系统运维的一项重要工作 系统工程师需要根据产品线的不同需求 测试服务器的各项性能以及功耗 同时结合成本确定出性价比最高的服务器配置 因此 硬件测试便成为了服
  • U-Boot 学习

    相关概念 参考文章 u boot FIT image介绍 wowotech net X 010 UBOOT 使用booti命令启动kernel Bubblegum 96平台 wowotech net FDT device tree 全称是f
  • SHELL入门学习

    SHELL SHELL 入门学习 shell 变量 shell echo shell printf shell test shell if then shell While shell function SHELL 入门学习 shell 变
  • 1.[springMvc]Servlet的基础知识

    Servlet的基础知识 servlet是啥 Servlet运行流程 示例 Servlet GenericServlet HttpServlet ServletContext Filter servlet映射器 servlet是啥 Java
  • 联合概率、边际概率、条件概率

    一时忘了联合概率 边际概率 条件概率是怎么回事 回头看看 某离散分布 联合概率 边际概率 条件概率的关系 其中 Pr X x Y y 为 XY的联合概率 Pr X x 为 X的边际概率 Pr X x Y y 为 X基于Y的条件概率 Pr Y
  • Openwrt编译报错 TCP Fast Open is not available for client mode 的解决办法

    报错信息 configure error TCP Fast Open is not available for client mode please rerun without enable tfo client gmake 3 Makef
  • Python安装教程步骤2:Windows中创建虚拟环境安装Pytorch并在PyCharm中配置虚拟环境

    python安装教程步骤2 windows中Anaconda创建虚拟环境安装pytorch并在pycharm中使用虚拟环境 作者介绍 windows中Anaconda创建虚拟环境安装pytorch 1 添加镜像源 2 创建虚拟环境 3 进入
  • ubuntu16.04详细安装pytorch(GPU)

    安装pytorch要安装两个模块 torch和torchvision torch是主模块 用来搭建神经网络 torchvision是辅模块 里面有搭建好的网络可以直接用 1 安装pip3 ubuntu自带python3 5和2 7 所以没装
  • linux 设置静态 ip 或者 修改 DNS

    设置 linux 静态 ip 或者 添加DNS preface 操作步骤 1 执行命令 nmtui 2 确认设置是否成功 supplements 3 1 linux 中 子网掩码的表示 3 2 DNS 和 ip 设置 3 3 DHCP 协议
  • Ribbon负载均衡(一)Ribbon实战

    Ribbon实战 文章目录 Ribbon实战 1 注册中心 1 1 服务注册到注册中心 1 2 服务注册列表Ribbon负载均衡选取相应节点 2 负载均衡方案 2 1 集中式负载均衡 2 2 进程内聚在均衡 3 Ribbon实践 3 1 配
  • Onvif协议学习:14、球机云台控制PTZ

    Onvif协议学习 14 球机云台控制PTZ 文章目录 Onvif协议学习 14 球机云台控制PTZ 一 介绍 二 代码实现 八个方向 放下及缩小控制 聚焦控制 原文链接 https blog csdn net u013566528 art
  • 步进电机原理及驱动

    这里把步进电机的资料做个整合 文章目录 步进电机是什么 原理 定子 定子的种类 转子及其种类 工作方式 单拍方式 双拍方式 单双拍方式 通电方式 驱动器 驱动程序 步进电机是什么 什么是步进电机 步进电机是将电脉冲信号 转变为角位移或线位移