glfcyby
发表于 2025-7-7 18:09:12
你好,提示极对数过多,校准失败,是啥原因啊?
校准时,电机转动平稳。上电是也是3声提示。
王昱顺
发表于 2025-7-7 18:17:16
glfcyby 发表于 2025-7-7 18:09
你好,提示极对数过多,校准失败,是啥原因啊?
校准时,电机转动平稳。上电是也是3声提示。
因为电机仅有一个磁编码器传感器,所以出现这种问题一般是磁铁安装不行
确定使用的是径向磁铁嘛?如果是的话,再检查一下磁铁和磁编码器之间,需要间隔2mm之内
如果都检查没问题,可以尝试更换磁编码器再试试
glfcyby
发表于 2025-7-9 16:22:35
王昱顺 发表于 2025-7-7 18:17
因为电机仅有一个磁编码器传感器,所以出现这种问题一般是磁铁安装不行
确定使用的是径向磁铁嘛?如果是 ...
嗯,换了个磁铁已解决。但是就是运行起来电流特别大,什么负载都不接的情况下,都3A了,不知道什么原因。
王昱顺
发表于 2025-7-9 18:39:43
glfcyby 发表于 2025-7-9 16:22
嗯,换了个磁铁已解决。但是就是运行起来电流特别大,什么负载都不接的情况下,都3A了,不知道什么原因。 ...
可能是校准的零点不对,尝试重新校准一下
razor7788
发表于 2025-7-16 23:11:15
请问这个能做云台用吗
MYSTCMCU
发表于 2025-7-19 22:03:44
大佬,我需要位置模式,但是我都搞了好久还是没有头绪啊。
王昱顺
发表于 2025-7-20 10:35:07
MYSTCMCU 发表于 2025-7-19 22:03
大佬,我需要位置模式,但是我都搞了好久还是没有头绪啊。
内部已经有单圈的绝对值了,将这个绝对值进行累加,形成一个多圈的绝对值。
然后再使用一个pid进行调整就可以控制了
MYSTCMCU
发表于 2025-7-26 17:37:31
大佬,我有两个新问题
第一个:
cur_avg += (set_duty/abs((int)speed));
这里speed的单位我猜是度/秒,如果speed=10 是不是10°/s ?
第二个:
if(duty_en<10)set_duty = (_ctrl_duty*(long)cur_cnt)>>12;else set_duty = 0;//赋值控制占空比到电机
上面这行duty_en我看也可以不要,不懂他的作用是什么或者是为了解决什么问题?{:4_174:}
王昱顺
发表于 2025-7-26 19:18:40
MYSTCMCU 发表于 2025-7-26 17:37
大佬,我有两个新问题
第一个:
cur_avg += (set_duty/abs((int)speed));
1.这里并不是一个准确单位,speed是从磁编码器中直接读取到的速度值,单位是圈/秒,这里是为了使用占空比和当前速度求出间接电流(并不准确),例如在duty不变的情况下,speed减少了,就等效电流增加,需要进行堵转保护了
2.这个是为了防止没有连接信号的时候乱转,意在保护线突然断掉后,马上进行停转保护,防止伤人,这个还是很有必要的,可以有效防止因为pwm线断开,但是电机还在转导致的问题
zengchang
发表于 2025-7-27 20:40:58
确实值得学习