42HS48步进电机实验
■ 前言
在 42HS48EIS步进闭环电机最大转速 中给出了一款带有驱动器的步进电机的测量结果。为了进一步减少实验室机械臂设计重量,购置了更小的一款电机进行测。
▲ 实验电机的外观以及旋转光电编码器
用于测量步进电机旋转精度的搞定度绝对位置旋转编码器BH38 也在 写文章-CSDN博客 进行了测试。在本实验中,将根据 使用高精度旋转编码器BH60测量步进电机转动角度 文章中的方法对本款测试步进电机的旋转精度进行测量。
01初步运动测试
1.实验方案1
实验方案采用 42HS48EIS步进闭环电机最大转速测量方案,采用 STC8K28步进电机ULC2003触发器 完成对电机控制信号的驱动。
为了便于在面包板上进行实验,将步进电机控制引线中制作两组四芯的插头。
▲ 制作两个4芯插头便于在面包板上实验
2.测试最大速度
通过单片机dp命令,设置输出PWM的定时器1的周期,从而测试输出脉冲的最大速度。
根据实际测试,当设置 dp 55时,不仅电机能够运行,dp 54时,步进电机不再运行。
根据输出频率公式:
可以计算测到此时输出PWM的最大频率为625kHz。通过示波器测量脉冲频率为624kHz左右。
▲ 测试最大脉冲速度
3.测试一周的脉冲数量
(1) 测试脉冲周期
在单片机程序serialtxt中提供如下命令;其中通过_nop_语句完成延迟。调整适当的循环次数,实测输出脉冲的能够满足在第二步测试的最短速率的要求。
else IFARG0("pulse") {
sscanf(SDA(1), "%d", &nNumber);
for(i = 0; i < nNumber; i ++) {
ON(IO1_PIN);
for(j = 0; j < 100; j ++)
_nop_();
OFF(IO1_PIN);
for(j = 0; j < 100; j ++)
_nop_();
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
最终确认设置:
for(j=0; j < 20; j++)
可以满足输出驱动的需要。
(2) 测试细分步数
通过设置步进电机的拨码开关(Sw2,3,4,5:OFF,OFF,OFF,ON),使得步进电机每周的步进次数为51200。
通过上面 pulse 命令,输出51200脉冲,可以测量步进电机正好旋转一周。这与对步进电机细分次数设定是相符的。
▲ 测试一周步进电机步数
▲ 输出51200个脉冲后步进电机旋转一周
02测量输出角度精度
1.测量方案2
测试的方案仍然采用在 使用高精度旋转编码器BH60测量步进电机转动角度 中的方法,只是将其中的角度传感器改成 BH38旋转编码器 。
实验的机械装置如下图所示:
▲ 将步进电机的输入与旋转角度传感器连接在一起
使用 ISPHUB 将 基于STC8H1K28的BH60的角度读写模块 与 STC8K28步进电机ULC2003触发器 模块连接在一起。然后通过编程发送步进指令和角度读取指令。
2.测量PYTHON程序
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY -- by Dr. ZhuoQing 2020-07-15
#
# Note:
#============================================================
from headm import *
from tsmodule.tsstm32 import *
stm32cmd('bh60clear')
time.sleep(.5)
stm32cmd('CLEAR')
stm32cmd('ps 20000 1')
while True:
key = stm32val()
if key[12] != 0: break
time.sleep(.5)
stm32cmd('COPY')
angle = [int(t) for t in clipboard.paste().strip('\r\n').split(' ') if len(t) > 0]
tspsavenew('angle', angle=angle)
plt.plot(angle)
plt.xlabel("Steps")
plt.ylabel("Angle")
plt.grid(True)
plt.tight_layout()
plt.show()
#------------------------------------------------------------
# END OF FILE : TEST1.PY
#============================================================
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
3.测量结果分析
(1) 测量运动与步数之间的角度关系
下面是行走1000步,读取的角度与步数之间的曲线。
▲ 行走1000步,步长为1,角度与步数之间的关系
▲ 行走5000步,步长为1,角度与步数之间的关系
▲ 行走5000步,步长为1,角度与步数之间的关系
▲ 行走600步,步长为100,角度与步数之间的关系
(2) 结果分析
通过前两个实验(1000步,5000步)可以看到行进步数与读出角度之间并非严格的线性关系,这其中原因:
- 有可能来自于步进电机与角度传感器之间的软连接的蠕动引起的;
- 有可能来自于步进电机本水的细分呈现非线性;
对比中间两个实验(5000步,5000步)连续测量两次5000步对应的角度曲线,第二次的角度曲线呈现更好的线性性。这说明前面关于运行非线性的问题主要来自于测量软连接的关系;
第四个时间是通过600步、每步100个脉冲,测试了角度输出。由于BH38输出的角度范围是14bit(16834范围),可以看到角度呈现了一个轮回。由于输出步进电机的每周细分步数为51200步,上述交过也间接证明了电机的细分步数。
※ 结论
通过实验对步进电机的运行控制硬件方案,最快速运行脉冲频率,以及输出角度测量做了初步的实验。
通过实验测量了电机的每周细分步数。
相关应用
文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuoqing.blog.csdn.net/article/details/107445204
- 点赞
- 收藏
- 关注作者
评论(0)