智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 7772|回复: 9
打印 上一主题 下一主题

关于编码器线数和脉冲数的关系

[复制链接]

14

主题

124

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1370
威望
687
贡献
393
兑换币
427
注册时间
2015-10-17
在线时间
145 小时
毕业学校
工大
跳转到指定楼层
1#
发表于 2016-2-21 12:34:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的编码器的线数500的,但是转一圈脉冲数是1000左右,我在网上查了一下,说是什么倍频什么的,还是不理解。希望有大神能指点一下,告诉我这两者之间的关系。虽然知道这个对我用编码器没多大作用但是还是很好奇,拜托大家了!附一个PDF送大家(嘿嘿,应该有很多人有了,需要的自己下吧,还不错哦)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

14

主题

124

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1370
威望
687
贡献
393
兑换币
427
注册时间
2015-10-17
在线时间
145 小时
毕业学校
工大
推荐
 楼主| 发表于 2016-2-24 10:27:53 | 只看该作者
kkwe123 发表于 2016-2-24 09:53
500线是指编码器转一圈,输出500个脉冲,你确定0.5秒你只转了一圈??

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

使用道具 举报

30

主题

468

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2961

活跃会员奖章优秀会员奖章在线王奖章

QQ
威望
1390
贡献
763
兑换币
893
注册时间
2015-10-9
在线时间
404 小时
2#
发表于 2016-2-21 17:06:39 | 只看该作者
你确定,编码器的采集时间不同,脉冲数也不一样的。
回复 支持 反对

使用道具 举报

14

主题

124

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1370
威望
687
贡献
393
兑换币
427
注册时间
2015-10-17
在线时间
145 小时
毕业学校
工大
3#
 楼主| 发表于 2016-2-21 18:53:42 | 只看该作者
TG小平民 发表于 2016-2-21 17:06
你确定,编码器的采集时间不同,脉冲数也不一样的。

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

回复 支持 反对

使用道具 举报

30

主题

468

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2961

活跃会员奖章优秀会员奖章在线王奖章

QQ
威望
1390
贡献
763
兑换币
893
注册时间
2015-10-9
在线时间
404 小时
4#
发表于 2016-2-21 20:55:13 | 只看该作者
不是,编码器转一圈就是500个脉冲,采集的脉冲/500/采集的时间 = 速度
回复 支持 反对

使用道具 举报

14

主题

124

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1370
威望
687
贡献
393
兑换币
427
注册时间
2015-10-17
在线时间
145 小时
毕业学校
工大
5#
 楼主| 发表于 2016-2-21 21:29:09 | 只看该作者
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,您说得意思我都理解,但是还是不能解释我这边的问题啊


回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
303
威望
155
贡献
94
兑换币
101
注册时间
2015-11-7
在线时间
27 小时
毕业学校
电子科技大学
6#
发表于 2016-2-24 09:53:48 | 只看该作者
500线是指编码器转一圈,输出500个脉冲,你确定0.5秒你只转了一圈??
回复 支持 反对

使用道具 举报

0

主题

18

帖子

0

精华

高级会员

Rank: 4

积分
708
威望
404
贡献
194
兑换币
192
注册时间
2015-11-23
在线时间
55 小时
毕业学校
南昌大学
8#
发表于 2016-2-28 09:39:18 | 只看该作者
;P;P
回复 支持 反对

使用道具 举报

14

主题

124

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1370
威望
687
贡献
393
兑换币
427
注册时间
2015-10-17
在线时间
145 小时
毕业学校
工大
9#
 楼主| 发表于 2016-2-28 10:30:18 | 只看该作者
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

注册会员

Rank: 2

积分
156
威望
78
贡献
50
兑换币
53
注册时间
2017-12-7
在线时间
14 小时
10#
发表于 2017-12-12 10:23:14 | 只看该作者
大神,这个完整版你有吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2025-2-14 07:52 , Processed in 0.051663 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表