智能车制作

标题: 关于编码器线数和脉冲数的关系 [打印本页]

作者: Whatarewords    时间: 2016-2-21 12:34
标题: 关于编码器线数和脉冲数的关系
我的编码器的线数500的,但是转一圈脉冲数是1000左右,我在网上查了一下,说是什么倍频什么的,还是不理解。希望有大神能指点一下,告诉我这两者之间的关系。虽然知道这个对我用编码器没多大作用但是还是很好奇,拜托大家了!附一个PDF送大家(嘿嘿,应该有很多人有了,需要的自己下吧,还不错哦)

作者: TG小平民    时间: 2016-2-21 17:06
你确定,编码器的采集时间不同,脉冲数也不一样的。
作者: Whatarewords    时间: 2016-2-21 18:53
TG小平民 发表于 2016-2-21 17:06
你确定,编码器的采集时间不同,脉冲数也不一样的。

你的意思是脉冲数应该等于线数,是么?


作者: TG小平民    时间: 2016-2-21 20:55
不是,编码器转一圈就是500个脉冲,采集的脉冲/500/采集的时间 = 速度
作者: Whatarewords    时间: 2016-2-21 21:29
TG小平民 发表于 2016-2-21 20:55
不是,编码器转一圈就是500个脉冲,采集的脉冲/500/采集的时间 = 速度

但是我500线的编码器确实转一圈是1000个脉冲啊。我是用的山 外的库,void PIT0_IRQHandler(void);
/*!
*  @BRIEF      main函数
*  @since      v5.0
*  @note       FTM 正交解码 测试
*/
void main(void)
{
    printf("\n*****FTM 正交解码 测试*****\n");

    ftm_quad_init(FTM1);                                    //FTM1 正交解码初始化(所用的管脚可查 port_cfg.h )

    pit_init_ms(PIT0, 2000);                                 //初始化PIT0,定时时间为: 500ms
    set_vector_handler(PIT0_VECTORn ,PIT0_IRQHandler);      //设置PIT0的中断服务函数为 PIT0_IRQHandler
    enable_irq (PIT0_IRQn);                                 //使能PIT0中断

    while(1);
}

/*!
*  @brief      PIT0中断服务函数
*  @since      v5.0
*/
void PIT0_IRQHandler(void)
{

    int16 val;
    val = ftm_quad_get(FTM1);          //获取FTM 正交解码 的脉冲数(负数表示反方向)
    ftm_quad_clean(FTM1);

    if(val>=0)
    {
        printf("\n正转:%d",val);
    }
    else
    {
        printf("\n反转:%d",-val);
    }

    PIT_Flag_Clear(PIT0);       //清中断标志位
}
我把采集时间放到2000ms放慢了一点以便我能在一次中断到下一次中断之间能转完一圈。亲测一圈脉冲1000,您说得意思我都理解,但是还是不能解释我这边的问题啊



作者: kkwe123    时间: 2016-2-24 09:53
500线是指编码器转一圈,输出500个脉冲,你确定0.5秒你只转了一圈??
作者: Whatarewords    时间: 2016-2-24 10:27
kkwe123 发表于 2016-2-24 09:53
500线是指编码器转一圈,输出500个脉冲,你确定0.5秒你只转了一圈??

确实是我当时转的时候无意间转了两圈,我一直以为只转了一圈,后来才发现(当时一连转了几次都是转了两圈以为是一圈,还以为线数不等于脉冲数呢),这破事花了我不少时间去琢磨这个问题

作者: 小雨轻轻神机    时间: 2016-2-28 09:39
;P;P
作者: Whatarewords    时间: 2016-2-28 10:30
小雨轻轻神机 发表于 2016-2-28 09:39

:(:(

作者: jackdown    时间: 2017-12-12 10:23
大神,这个完整版你有吗




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2