步进电机控制

注:接线要以购买的驱动器和电机为准

1.环境搭建

1.1接线

57步进电机,变成是57cm如图 57BYG250B
在这里插入图片描述
两相四线双极性步进电机 具体的步进电机要看对应的接线
57BYG250B
在这里插入图片描述
黑色A+
绿色A-
红色B+
蓝色B-
在这里插入图片描述

1.2步进电机驱动

对大扭矩电机进行驱动
可以对进行细分
适合驱动57、42型两相、四相混合式步进电机。能达到低振动、小噪声、高速度的效果驱动电机。
在这里插入图片描述
这个驱动器的名称是中文的 可能有其它英文的如下:
在这里插入图片描述
1.2.1 电机接线
在这里插入图片描述
如图是一个接线图
在这里插入图片描述
输入信号共有三路,它们是:
①步进脉冲信号PUL+,PUL-;
②方向电平信号DIR+,DIR-
③脱机(关闭)信号EN+,EN-。
输入信号接口有两种接法,用户可根据 需要采用共阳极接法或共阴极接法。

● 共阳极接法:
分别将PUL+,DIR+,EN+连接到控制系统的电源正极上,如果此电源是+5V/3.3V则可直接接入,如果此电源大于+5V,则须外部另加限流电阻R,保证给驱动器内部光藕提供8—15mA的驱动电流。脉冲输入信号通过PUL-接入,方向信号通过DIR-接入,使能信号通过EN-接入。

● 共阴极接法:
分别将PUL-,DIR-,EN-连接到控制系统的地线(GND)上。脉冲输入信号通过PUL+接入,方向信号通过DIR+接入,使能信号通过EN+接入。如果此控制系统信号线是+5V/3.3V则可直接接入,如果此信号电压大于+5V,则须外部另加限流电阻R,保证给驱动器内部光藕提供8—15mA的驱动电流。

采用共阳接法,初始化的时候配置为开漏输出模式.
接线如下图
在这里插入图片描述
在这里插入图片描述
PA8使用的是高级定时器的CH1引脚
ENA和DIR使用的是普通引脚
在这里插入图片描述
1.2.2 设置细分
细分数设定
细分数是以驱动板上的拨码开关选择设定的,用户可根据驱动器外盒上的细分选择表的数据设定(要求在断电情况下设定) 。
细分后步进电机步距角按下列方法计算:
步距角=电机固有步距角/细分数
如:一台固有步距角 为1.8°的步进电机在4细分下步距角为1.8°/4=0.45°
实际使用的时候,细分要合理的调整
32细分数对应是转动一圈需要6400个脉冲,这在控制步进电机转动圈数非常重要。
注意:控制程序也需要根据细分数进行修改,可以说细分数与控制程序是息息相关的
在这里插入图片描述
1.2.3 电流设置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置为2.84A,32细分

1.3 步进电机控制

注意:使用的是比较输出模式,而不是PWM模式
● 设置接ENA的引脚为开漏模式,默认为高电平 这样电机才可以旋转, 也就是没有电流的时候
● 设置方向,顺时针是导通,逆时针是不导通
使用的引脚:
PA8 脉冲
PB13 方向 低电平
PB14 使能 高电平

1.3.1 输出比较模式

输出的就是50%占空比的波形
● 用来控制一个输出波形,或者指示一段给定的的时间已经到时。
● 当计数器与捕获/比较寄存器的内容相同时,输出比较功能做如下操作:
将输出比较模式(TIMx_CCMRx寄存器中的OCxM位)和输出极性(TIMx_CCER寄存器中的CCxP位)定义的值输出到对应的引脚上。
在比较匹配时,输出引脚可以保持它的电平(OCxM=000)、被设置成有效电平(OCxM=001)、被设置成无效电平(OCxM=010)或进行翻转(OCxM=011)。
● 设置中断状态寄存器中的标志位(TIMx_SR寄存器中的CCxIF位)。
● 若设置了相应的中断屏蔽(TIMx_DIER寄存器中的CCxIE位),则产生一个中断。
● 若设置了相应的使能位(TIMx_DIER寄存器中的CCxDE位,TIMx_CR2寄存器中的CCDS位选择DMA请求功能),则产生一个DMA请求。
● TIMx_CCMRx中的OCxPE位选择TIMx_CCRx寄存器是否需要使用预装载寄存器。
● 在输出比较模式下,更新事件UEV对OCxREF和OCx输出没有影响。

输出比较模式的配置步骤:
1.选择计数器时钟(内部,外部,预分频器)。
2.将相应的数据写入TIMx_ARR和TIMx_CCRx寄存器中。
3.如果要产生一个中断请求,设置CCxIE位。
4.选择输出模式,例如:
● 要求计数器与CCRx匹配时翻转OCx的输出引脚,设置OCxM=011
● 置OCxPE= 0禁用预装载寄存器
● 置CCxP= 0选择极性为高电平有效
● 置CCxE= 1使能输出

5.设置TIMx_CR1寄存器的CEN位启动计数器
uTIMx_CCRx寄存器能够在任何时候通过软件进行更新以控制输出波形,条件是未使用预装载寄存器(OCxPE=’0’,否则TIMx_CCRx的影子寄存器只能在发生下一次更新事件时被更新)。
在这里插入图片描述

1.3.2 cube配置

1.设置时钟
2.GPIO设置
在这里插入图片描述
3.TIM 高级定时器设置
在这里插入图片描述
Presclaler 预分频:3 ->时钟为18MHZ 72 / 4 = 18
Counter Mode 计数模式:向上计数
Counter Period 计数:65535设置为最大即可
Repetition Counter (RCR - 8 bits value) 重复计数: 0
auto-reload preloa:关 可以让我们随时写入值 进行修改 否则只有完成一次计数才可以进行更新

Mode 模式:翻转 也就是达到计数就进行翻转 Toggle on match
Pulse (16 bits value) 脉冲:计数多少进行翻转 500
Output compare preloadCH Polarity:
CH ldle State:Reset 好像是和死区有关的 不用管

计算理论:18KHZ
实际测试:17.2KHZ
使能比较中断
在这里插入图片描述
详解控制方式:
这一段是中断执行的函数,也就是控制电机的脉冲的代码。

void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
{
	/* 定义计数值 */
  __IO uint16_t count;
	/* 获取当前的计数值保存到count */
  count = __HAL_TIM_GET_COUNTER(&htim1);
	/* 改变比较值为 count + Toggle_Pulse */
  __HAL_TIM_SET_COMPARE(&htim1 , TIM_CHANNEL_1, count + Toggle_Pulse);
}

在前面设置中:设置计数值为65535
比较值设置为:500
在程序运行开始开始计数,此时PA8引脚输出为低电平
当计数到500的时候,由于我们设置了翻转电平
因此变为高电平,然后,我们将原来的值再加500,然后到了1000,电平翻转
如此反复就形成了方波

溢出的问题:
达到了计数65100
然后会增加500,达到65600 此时会溢出,赋值给寄存器的时候不会报错,此时会将值改变为65600-65535 = 65
会将65赋值过去

因此,为什么设置计数为65535 就是因为溢出的问题计数最大为65535,
如果给了小于65535的值,在超过设定的值之后,比较值还是可以继续增大,而不会溢出,此时就不会产生比较了,因为比较值是永远大于设定值的。或许可以加一个算法解决,但是可能会显得比较麻烦。

细分数越高会提高性能,减少抖动,但是中断过于频繁。
一般在满足要求的情况下,降低细分数,更加容易控制

1.3.3 串口控制

RS232或RS485
通过串口来控制步进电机的转动

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 上位机控制步进电机C需要通过串口通讯将控制命令传输至步进电机驱动器使用。首先,在上位机中需要编写程序,建立串口通讯连接并发送控制命令至步进电机驱动器。其次,需要连接电路,将步进电机与驱动器相连。在步进电机驱动器中需要设置步进电机的运行参数和控制模式,以便于上位机进行控制。最后,在上位机中设置相应的控制参数,如旋转方向、转速、旋转角度等,控制步进电机的运转。同时,上位机需要实时获取步进电机的状态和数据反馈,如位置、速度、转角等信息,以实现对步进电机的精确控制和监控。需要注意的是,步进电机控制需要考虑到其特性,如步距角、步数、电流和驱动方式等因素,以确保控制的精度和稳定性。 ### 回答2: 上位机是一种计算机控制器,它可以通过串口、网络、USB等接口与其他设备进行通信,以控制和监测设备的运行状态。步进电机是一种精密电动机,具有定向性、高分辨率、低噪音等特点,广泛应用于数控机床、印刷机、医疗设备等领域。 通过上位机控制步进电机c,可以实现精准的定位和动态控制。具体步骤如下: 1.确定步进电机c的型号和参数,包括步距角、电流、电压等。 2.在上位机程序中编写控制代码,选择合适的控制模式,如全步进模式、微步进模式等。 3.通过串口或USB口将控制指令发送到步进电机控制器,控制器会将指令转换成电流信号,驱动步进电机c运动。 4.在运动过程中,上位机可以实时监测步进电机c的运行状态,如位置、速度、加速度等。根据需要,可以调整控制参数,优化控制效果。 综上所述,上位机控制步进电机c可以实现高精度的运动控制,为自动化生产和科学研究提供了有效的手段。 ### 回答3: 上位机控制步进电机c是一种常见的控制方式。通过上位机软件编写,实现对步进电机c进行控制步进电机c通常由两相或三相驱动电路控制,可以按照预设的步长和方向进行转动,输出连续而准确的运动。其精度高、速度可调、节能环保等优点,在自动化流水线、数控机床、印刷机等众多行业中被广泛应用。 上位机控制步进电机c的核心是编写控制程序。控制程序需要按照具体的步进电机型号、参数、电路等进行设计与调试。在编写控制程序时需要考虑到步进电机c的特点,即步长与转速。通过改变控制程序的输出信号,实现对步进电机c的转动、停止、加速、减速等操作,从而实现任意位置的精准控制。 需要注意的是,在实际的应用中,步进电机c的负载和环境因素都会影响其运转的稳定性和精准性。因此,在控制步进电机c时,要根据实际情况进行调整和优化,从而保证其正常运转和精准控制

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路过的小熊~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值