查看: 2973|回复: 0

初玩GD32F207小红板那些事之平衡小车——正交译码器

[复制链接]
  • TA的每日心情
    开心
    2017-6-17 09:42
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2016-1-26 13:14:19 | 显示全部楼层 |阅读模式
    分享到:
    今天和大家分享下基于小红板(GD32F207)送餐机器人的电机测速部分代码。该部分我用的是小红板的定时器正交译码器功能,对左右电机进行测速。
    一、光电码盘


    图1 编码器示意图
    file:///C:\Users\shamozhihuong\AppData\Roaming\Tencent\QQ\Temp\TempPic\VTBBW7K5IK5H0X)$Y4%`GHR.tmp
       中间是一个带光栅的码盘,光通过光栅,接收管接收到高电平,没通过,接收到低电平。电机旋转一圈,码盘上有多少光栅,接受管就会接收多少个高电平。371电机中的码盘就是这样的,他是334线码盘,具有较高的测速精度,也就是电机转一圈输出334个脉冲,芯片上已集成了脉冲整形触发电路,输出的是矩形波,直接接单片机IO就OK。   

       增量式旋转编码器通过内部两个光敏接受管转化其角度码盘的时序和相位关系,得到其角度码盘角度位移量增加(正方向)或减少(负方向)。下图为编码器的原理图:

           图2 增量式旋转编码器      A,B两点对应两个光敏接受管,A,B两点间距为 S2 ,码盘的光栅间距分别为S0和S1。S0+S1的距离是S2的四倍。这样保证了A,B波形相位相差90度。旋转的反向不同,锯齿波A,B先到达高电平的顺序就会不同,如上图左侧所示,顺序的不同,就可以得到旋转的方向。
    二、小红板定时器选择
          通过小红板的用户手册和原理图来确定定时器,用TIM2与TIM3,其它的如TIM4的引脚基本被占用,TIM5的引脚没有引出来等等所以不能选哦。




    三、小红板代码解析部分
    1、正交译码器
         正交译码器功能使用两个源于TIMERx_CH1和TIMERx_CH2引脚的积分输入TI1和TI2各自相互作用产生计数值。在每个输入源改变期间,DIR位被硬件自动改变。输入源可以是只有TI1,只有TI2或TI1和TI2。选择模式可以设置SMC=0x01, 0x02或0x03来完成。改变计数方向的机制如下图所示。正交译码器可以用作一个带有方向选择的外部时钟,意味着计数器在内部从0到重载值持续计数。因此,用户必须在计数器开始计数前配置TIMERx_CARL寄存器。

    回复

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-18 22:50 , Processed in 0.120176 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.