步进电机控制原理

embedded/2024/12/24 9:44:53/

前言


讲讲步进电机的控制原理。相关知识做介绍,以及个人的理解。

基础知识PPT

频率越快速度越快

原理总结

一、什么是步进电机

  • 步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。
  • 每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。因此,步进电动机又称脉冲电动机。
  • 步进电机相对于其它控制用途电机的最大区别是,它接收数字控制信号(电脉冲信号)并转化成与之相对应的角位移或直线位移,它本身就是一个完成数字模式转化的执行元件。
  • 而且它可开环位置控制,输入一个脉冲信号就得到一个规定的位置增量,这样的所谓增量位置控制系统与传统的直流控制系统相比,其成本明显减低,几乎不必进行系统调整。
  • 步进电机的角位移量与输入的脉冲个数严格成正比,而且在时间上与脉冲同步。因而只要控制脉冲的数量、频率和电机绕组的相序,即可获得所需的转角、速度和方向。

简而言之

控制步进电机很简单,有两点,

  • 控制步进电机转动一个角度,只需要要给一个脉冲,转动多少角度,就给多少个脉冲

那么如何确定角度与脉冲之间的关系呢?

二、步进电机角度与脉冲数之间的关系


首先,我们要了解步进电机以及步进电机驱动器的相关参数。

  • 步距角:在不设置步进电机驱动器细分的情况下,一般就是1.8度,也就是给一个脉冲,步进电机转1.8度。
  • 举个例子,如果你驱动器细分为2,那步距角就是0.9度。

相数:我们常见的步进电机类别有四线两相步进电机以及六线两相步进电机。
这里的两相指的是A相、B相。线数指的是引出的线,有A+,A-,B+,B-四线,六线与四线不同在于引出了两个com端,一个既可做A+,又可作A-;一个既可做B+,又可作B-。

如果你拿到一个步进电机,无法区分A、B相,就用万用表测一下,连在一起的是同一相。

实物图如下:(这是六线的,四线的没有两个com口)

步进电机驱动器参数为什么需要步进电机驱动器?

步进驱动器是驱动步进电机运行的功率放大器,它能接收控制器(plc/单片机等)发送来的控制信号并控制步进电机转过相应的角度/步数。

最常见的控制信号是脉冲信号,步进驱动器接收到一个有效脉冲就控制步进电机运行一步。

具有细分功能的步进驱动器可以改变步进电机的固有步距角,达到更大的控制精度、降低振动及提高输出转矩;

除了脉冲信号,具有总线通信功能的步进驱动器还能接收总线信号控制步进电机进行相应的动作。

  • 步进电机驱动器可分为两部分一部分是环形分配器,另一部分是功率放大。
  • 环形分配器:要是接收3种信号分别为:脉冲信号,方向信号,脱机信号。
  • 功率放大:步进驱动器首先要外接直流电源24~28V,一端要连步进电机,另一端作输入信号也就是控制信号。
  • 简而言之 ,步进电机驱动器的作用在于接收单片机的方向控制与脉冲信号,输出控制A+,A-,B+,B-四相的通断电时间以及次序,进而实现步进电机的控制。可以看到步进电机只有六根线,不能通过单片机直接控制。

这就是为啥要驱动器的原因。

关于它的参数。有细分与电流两种,通过拨码开关档位选择进行控制。

  • 参数1:细分数就是改变步距角,一个脉冲转多少度。
  • 参数2:电流细分则是控制它的电流大小。

接线注意:共阴极接法就是把PUL-,DIR-同接GND,PUL+接单片机脉冲引脚,DIR接单片机方向引脚,ENA+与ENA-可不接线。

其实,也可以通过L295N来控制步进电机,其方法就是控制A+,A-,B+,B-的通电顺序。
具体我就不详细解释了。

三、如何控制步进电机
步进电机的控制设计到两个参数,一个是转速,一个是角度,一个是转向。

这里需要用到一个定时器的一个通道的输出比较功能,用于脉冲的输出。

1、转速:我们先来看如何改变步进电机的转速,步进电机的转速取决于定时器的ARR值,ARR值越大,转速越快,反之,则亦然。

2、角度:对于角度的控制是通过控制脉冲数实现的,如何控制脉冲数,也就是记录定时器更新中断的次数,进一次中断也就相当于产生一个脉冲,一个脉冲控制步进电机转一个步距角。
3、转向:步进电机的转向是通过操作单片机的IO口高低电平来实现的,方向引脚置高电平,正转;置低电平,反转。


http://www.ppmy.cn/embedded/148302.html

相关文章

【总结(三)】单片机重点知识总结记录(串口重定向+按键消抖+延时)

一.串口重定向 串口重定向代码如下 注意: 要添加头文件include "stdio.h"要勾选微库,即Use MicroLIB /**********重定向************/ //串口1 int fputc(int ch, FILE *f) {HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff)…

【JUC编程】JUC 多线程基础全面解析(待更新版)

文章目录 JUC 多线程基础全面解析一、线程与并发基础1. 什么是线程?2. 并发与并行的区别3. Java 线程的基本创建方式 二、JUC 核心组件1. 线程池2. 锁机制3. 并发集合 三、线程间通信工具1. CountDownLatch2. CyclicBarrier3. Semaphore 四、原子操作类五、并发工具…

dcdc buck闭环数控型稳压电源仿真+单片机程序及实验报告

资料下载地址:dcdc buck闭环数控型稳压电源仿真单片机程序及实验报告 一、实验目的 设计并制作一台数控型DCDC稳压电源。 二、实验要求 1、输出电压范围 :0.5v~4.5v。可以通过按键实现电压调整 2、必须使用PID闭环控制算法 3、发挥部分: PID…

刷题 两数之和

https://leetcode.cn/problems/two-sum/submissions/588870256/?envTypestudy-plan-v2&envIdtop-100-liked 参考快排算法 https://blog.csdn.net/oSKyTonight/article/details/129813861 /** Note: The returned array must be malloced, assume caller calls free(). */…

MapReduce的shuffle过程详解

文章目录 MapReduce的shuffle过程详解一、引言二、Shuffle过程详解1、Map端Shuffle1.1、分区(Partition)1.2、排序(Sort)1.3、分割(Spill) 2、Reduce端Shuffle 三、使用示例四、总结 MapReduce的shuffle过程…

stm32中有哪些库?其中标准库和HAL库有什么区别?

stm32中有哪些库? 1. STM32标准外设库(Standard Peripheral Library) 介绍:STM32 标准外设库是 STM32 官方提供的一个硬件抽象库,旨在简化对 STM32 各类外设(如 GPIO、UART、SPI、I2C、ADC、PWM 等&#x…

(补)算法刷题Day24: BM61 矩阵最长递增路径

题目链接 思路 方法一:dfs暴力回溯 使用原始used数组4个方向遍历框架 , 全局添加一个最大值判断最大的路径长度。 方法二:加上dp数组记忆的优雅回溯 抛弃掉used数组,使用dp数组来记忆遍历过的节点的最长递增路径长度。每遍历到已…

LeetCode 209. 长度最小的子数组 (C++实现)

1. 题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 1: 输…