传统型编码器测速方案

编码器,经常被用来测量速度或者显示电机位置,大致分为绝对值式编码器和增量式编码器,顾名思义,相对应的是产生增量或者绝对信号。增量信号不表示特定位置,只表示位置已经更改;绝对信号是绝对值式编码器对应每个位置使用不同的“字”,所以绝对值编码器即可以显示所处的位置,也可以计算相对应的速度。增量编码器,一般用于测量速度居多。价格方面,一般来说增量编码器也低于绝对值式编码器。
此处,我们以增量编码器为例进行相关说明。
原理:每转过单位的角度就发出一个脉冲信号(或者是正弦信号),通常为对外输出为A相、B相、Z相(有些特殊编码器会输出6相信号:A+、A-、B+、B-、Z+、Z-,正负信号为互补相反输出)。A相和B相其相位相差一个相位,一般为1/4周期(或者90度)。A相和B相的先后顺序决定编码器是正转或者反转。
A相信号在前,表示右旋转(从轴侧看)
B相信号在前,表示左旋转(从轴侧看)
有的编码器还有一个Z相,它表示的是0位,即检测到0刻线即输出高电平,也就是给增量式编码器一个寻零的功能。

编码器内部电路输出分集电极开路输出、互补输出、电压输出、驱动器输出

编码器的输入电压范围一般都比较大,从5V到24V不等,此处假设输入电压为12V,stm32单片机的IO口一般为3V,5 V tolerant。编码器选择集电极开路输出,上拉电阻到3V(或者可以配置GPIO管脚为上拉模式,省去外部上拉),或者使用互补输出,调整输入电压为5V或调整输出电压幅值。本试验以集电极开路输出为例。
1.2.2软件实现方式(本实验以野火指南者开发板stm32f103VET6为例)
STM32的定时器TIM1,2,3,5,8中有专门的编码器模式,省去了我们读脉冲和计数的操作。而且配置全面。
可以配置:

  1. 计数方式(counter mode):即向上计数还是向下计数,不过使用编码器都是记录转的角度,读取计数器从0开始的计数,所以一般来说都是向上计数。
  2. 编码器(encoder mode):Tl1是只检测上升沿,Tl2只检测下降沿。Tl1 and Tl2是上下沿都检测,那么脉冲数将是只检测一个沿的两倍。
    本例以编码器模式为例来测试。
    具体配置如下:
    下载调试为SW模式。

    时钟选择外部高速晶体震荡时钟。

    使能TIM8为Encoder Mode,显示通道1和通道2为灰色,表示这两个通道已经被使用为编码器模式了。


    具体配置如下,重载值16bits,即计数器数到多少就清零,设置为0xffff ,Encoder Mode选择Encoder Mode TI1 and TI2,表示在A相和B相的上升和下降沿都会计数,故最终计算的数据应该是计数值除以4。输入滤波选择15,为最大值,滤除干扰信号。

    GPIO口模式选择为输入模式,Pull-up上拉,此处主要是为了兼容开漏模式的编码器输出(或者此处不配置为上拉模式,硬件上做上拉处理)配置如下

增开TIM6,配置如下,系统主频为72M的配置,并使能中断。


配置串口1用于打印输出数据。配置如下:

系统72M时钟配置如下。





此处以TS=1秒定时为例,每隔1秒清除编码器所计数的数据。
CaptureNumber为4倍的编码器的PWM数值。主程序串口输出方向和上1秒计数值。
Stm32f103的Counter Period为16bits数据,最大为0xffff。在不清除CNT情况下,
左转和右转编码器,计数方式不同。
左转 从0x0000~0xffff,
右转 从0xffff~0x0000
编码器一圈划分600格。
故:编码器最快速度为TS情况下把计数器填满。其速度为大:2^152PI /(6004TS)
最小速度为,当编码器在TS时间内,最小要跑1个格:2PI/(600
TS)
当TS为1S,速度范围为:0.0104rad/S~81.64rad/S
按照目前拉丝速度换算成角速度为15.33 rad/S,满足要求
如要测试更快速度,则把TS,即取样时间缩小。
硬件连接:
A相:接PC6
B相:接PC7
串口使用串口PA9、PA10

备注:笔者是做硬件设计的,由于工作需求才研究编码器的使用。文中难免有不合理的地方,还请见谅,且示例代码也仅仅跑了这一个任务,实际的应用比这个复杂的多,笔者也不懂更深入的编码。

传统型编码器测速方案相关推荐

  1. 单片机c语言计数器测速,基于51单片机的光电编码器测速.doc

    课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器.在位置控制系统中,由于电机既可能正转,也可能反转,所 ...

  2. 51单片机电机测速程序c语言,基于51单片机光电编码器测速.doc

    基于51单片机光电编码器测速 PAGE PAGE 2 课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器 ...

  3. 一种基于STM32F1 MCU的增量型编码器测速的方法

    遇到的问题 1. 编码器信号,用来计量长度,如果需要同时测量当前实时速度,在不增加接口的情况下,实现较为准确实时的测速 2. 简单的M法速度,对于低速信号,测量精度较差,实时性也不高. 测速方法 之前 ...

  4. 直流有刷电机编码器测速基于STM32F302R8+X-NUCLEO-IHM07M1

    文章目录 前言 一.编码器测速原理 二.STM32F302R8+X-NUCLEO-IHM07M1直流电机编码器测速 2.1.功能需求 2.2.硬件设计 2.3.软件设计 2.3.1.底层配置 2.3. ...

  5. smb测速工具_编码器测速例子

    编码器测速例子 各位好,我现在要用 CPU226 通过编码器测电机转速,看了许多手册编的程序总是测不出来, 编码器用的是 A/B 两相的,那位能给发个简单的例子啊, 转自网上的回答, 我也正在学习这个 ...

  6. 旋转编码器测速c语言程序,官方例程中编码器测速程序高低速怎么区分

    如下是官方编码器测速的程序: //**** High Speed Calculation using QEP Position counter ****// // Check unit Time ou ...

  7. STM32 HAL库实现编码器测速

    STM32 HAL库实现编码器测速 (还开了串口1用来调试,下文没写:然后那个short的用法就是看平衡小车之家(就是喵呜实验室的文档里头的,用法确实惊艳),文末贴了工程) 编码器接口模式 TI1和T ...

  8. Stm32-使用TB6612驱动电机及编码器测速

    这里写目录标题 起因 一.电机及编码器的参数 二.硬件 三.接线 四.驱动电机 1.TB6612电机驱动 2.定时器的PWM模式驱动电机 五.编码器测速 1.定时器的编码器接口模式 2.定时器编码器模 ...

  9. stm32霍尔编码器测速(标准库函数版)

    基本原理:霍尔编码器是有霍尔马盘和霍尔元件组成.霍尔马盘是在一定直径的圆板上等分的布置有不同的磁极.霍尔马盘与电动机同轴,电动机旋转时,霍尔元件检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相 ...

最新文章

  1. MySQL · 性能优化· CloudDBA SQL优化建议之统计信息获取
  2. .NET Framework介绍
  3. Win Server 2008中开启Areo特效
  4. vs2019+wdk10开发 xp, win7, win10 驱动
  5. POJ 2251 Dungeon Master (BFS最短路)
  6. Django CMS介绍(转载)
  7. matlab文件序号超出511,求教一段matlab的代码 - 数学 - 小木虫 - 学术 科研 互动社区...
  8. 【开发者成长】Vue.js 中有哪些性能陷阱
  9. python爬虫网络出错怎么办_python爬虫之headers处理、网络超时问题处理
  10. 算法导论 思考题6-3(Young氏矩阵)
  11. LeetCode 56. 合并区间(合并区间+排序)
  12. 全国多年平均相对湿度空间分布数据
  13. 网页无法正常显示Lato字体,绕路而行
  14. python 拆分excel 随机分组
  15. 安全架构--8--我设计的企业安全体系架构
  16. python输出偶数_如何用Python 判断奇偶数
  17. 微信小程序自定义switch中带文字效果
  18. 如何快速查询手机在网状态
  19. tomcat运行web项目报错:请求的资源[]不可用
  20. 计算机应用期刊三次外审,期刊论文一般外审几次

热门文章

  1. 煤矿智能化相关50项团体标准征求意见
  2. Twaver-HTML5基础学习(37)network导出图片并下载
  3. DDD 领域驱动设计落地实践系列:工程结构分层设计
  4. PHP + ajax 实现上传进度条、PHP 上传大视频
  5. 麒麟子Cocos Creator实用技巧一:如何正确地显示微信头像
  6. headroom.js使用
  7. 第77页的gtk+编程例子——像元图
  8. 解决CST报错——“The desired daemon is down. Check the lmgrd log file...”
  9. 如何无风险地用技术逆袭--技术宅男的华丽转身
  10. 程序员崩溃的四十多个个瞬间!!!