manzunzu 发表于 2026-5-22 09:21:51

接收编码器信号,PWM输出脉冲

现在有一个需求,就是用编码器接收脉冲信号,然后内部做电子齿轮(乘分子除分母),由PWM输出脉冲。不知道这种用硬件能不能实现

lcwswust 发表于 2026-5-22 10:29:54

感觉有点像PLL?

梁工 发表于 2026-5-22 13:39:54

信息不完整,编码器输入最高信号频率多少?输出脉冲是什么格式?(编码器格式?)
将当前接收到的脉冲数*分子/分母,结果跟上一次计算值是否不同,不同则输出脉冲。

wulin 发表于 2026-5-22 16:10:07

编码器接收脉冲信号??? 是编码器产生脉冲信号吧,然后再倍频?说的不明确。

manzunzu 发表于 2026-5-23 08:41:01

梁工 发表于 2026-5-22 13:39
信息不完整,编码器输入最高信号频率多少?输出脉冲是什么格式?(编码器格式?)
将当前接收到的脉冲数*分 ...

你好梁工,编码器频率25KHZ,AB相脉冲。将当前接收到的脉冲数*分子/分母后直接用PWM输出脉冲。比如分子是1,分母是3,单片机接收到编码器3个脉冲后,PWM输出1个脉冲。

manzunzu 发表于 2026-5-23 08:47:08

主要就是想用在绕线机上,收料轴上有1024线AB相编码器,单片机接收到编码器的脉冲后按设定的比例控制摆动的伺服电机,要求每根线的间距保持一致,精确到0.1MM

梁工 发表于 2026-5-23 08:56:49

manzunzu 发表于 2026-5-23 08:41
你好梁工,编码器频率25KHZ,AB相脉冲。将当前接收到的脉冲数*分子/分母后直接用PWM输出脉冲。比如分子是1 ...

PWMA读取编码器脉冲数c。
暂存上一次输出脉冲数 a=b;
计算本次输出脉冲数 b = c*N/M,N为分子,M为分母。
if(a != b)   //有脉冲要输出
{
      k = b - a;
      PWMB输出k个脉冲。
}

manzunzu 发表于 2026-5-23 09:12:28

梁工 发表于 2026-5-23 08:56
PWMA读取编码器脉冲数c。
暂存上一次输出脉冲数 a=b;
计算本次输出脉冲数 b = c*N/M,N为分子,M为分母。 ...

感谢梁工的回复,
页: [1]
查看完整版本: 接收编码器信号,PWM输出脉冲