初出茅庐的小李博客之认识编码器

编码器是什么:

一种将角位移或者角速度转换成一连串电数字脉冲的旋转式传感器,我们可以通过编码器测量到底位移或者速度信息。编码器通常由一个旋转部分和一个固定部分组成,旋转部分随着被测量的物体进行旋转,固定部分则保持不动。当旋转部分发生旋转时,编码器会产生一系列的电数字脉冲信号,这些脉冲信号可以用来确定旋转角度或角速度。

编码器输出类型分类:

编码器从输出数据类型上分,可以分为增量式编码器和绝对式编码器。

绝对编码器(Absolute Encoder):

绝对编码器可以直接读取物体的绝对位置或角度,无需进行初始参考点的校准。绝对编码器通常具有高精度和准确性,适用于需要精确位置或角度信息的应用。

增量编码器(Incremental Encoder):

增量编码器测量的是物体相对于初始位置的增量角度或角速度。它们通常需要一个初始位置的参考点,因此在启动时需要进行校准。增量编码器适用于需要监测运动变化的应用,但相对于绝对编码器可能需要更多的处理来确定绝对位置

编码器检查原理分类:

从编码器检测原理上来分,还可以分为光学式、磁式、感应式、电容式。常见的是光电编码器(光学式)和霍尔编码器(磁式)。

光学编码器(Optical Encoder):

光学编码器利用光学原理来测量旋转角度或线性位移。它包含一个光源(通常是发光二极管)和一个光敏元件(通常是光电二极管或光电传感器)。旋转部分上的编码盘或编码条上有一个特定的光学图案,当旋转发生时,光源会照射到光敏元件上,根据光敏元件接收到的光信号变化,可以测量出旋转角度或线性位移。

磁性编码器(Magnetic Encoder):

磁性编码器使用磁场来测量旋转角度或线性位移。它包括一个磁性编码盘或编码条,以及一个或多个磁敏传感器。编码盘上的磁性图案与传感器之间的磁场变化会导致输出信号的变化,从而测量出旋转角度或线性位移。

编码器的用途:

编码器在工业自动化、机器人控制、医疗设备、航空航天等领域都有广泛的应用,用于测量和控制旋转运动。它们的输出信号可以通过电子设备进行解码,从而得到准确的角度或角速度信息。

编码器检测原理:

光电编码器(Optoelectronic Encoder)是一种常见的增量式编码器,利用光学原理来测量旋转角度或线性位移。

它是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器是由光码盘和光电检测装置组成。光码盘是在一 定直径的圆板上等分地开通若干个长方形孔。由于光电码盘与电动机同轴,电动机旋转时,检测装置检测输出若干脉冲信号,为判断转向,一般输出两组存在一 定相位差的方波信号

它主要是根据光是否被遮挡来输出不同的信号检测物体运动的变化。

下面是光电编码器的检测原理:

  1. 编码盘或编码条:光电编码器的旋转部分上通常有一个编码盘或编码条,上面有特定的光学图案,如透明间隔和不透明条纹。这些图案会在旋转过程中使光线与光敏元件之间产生周期性的遮挡和透射,从而生成脉冲信号。

  2. 光源:光电编码器中的光源通常是发光二极管(LED),发射的光线照射到编码盘或编码条上的光学图案上。

  3. 光敏元件:光电编码器中的光敏元件通常是光电二极管或光电传感器。它们安装在固定位置,用于接收从编码盘或编码条反射回来的光线。当光线经过透明间隔或被不透明条纹遮挡时,光敏元件会产生电信号变化。

  4. 信号处理:光敏元件产生的电信号被放大和处理,通常经过电子电路进行脉冲计数。在旋转过程中,光敏元件会在透明间隔和不透明条纹之间切换,从而产生一系列脉冲信号。这些脉冲信号的数量和频率与旋转角度或线性位移成正比。

  5. 脉冲输出:光电编码器通过脉冲信号输出来表示旋转角度或线性位移的变化。通常,有两路正交的脉冲信号(通常称为A相和B相),用于测量方向和增量变化。此外,一些光电编码器还可能具有Z相信号,用于标记一个完整的旋转周期。

霍尔编码器是一种通过磁电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。霍尔编码器是由霍尔码盘和霍尔元件组成。霍尔码盘是在一 定直径的圆板上等分地布置有不同的磁极。霍尔码盘与电动机同轴,电动机旋转时,霍尔元件检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相位差的方波信号

它主要是利用外部磁场对半导体材料中电子运动轨迹的影响来检测位置变化。

下面是霍尔编码器的工作原理:

  1. 霍尔效应:霍尔效应是一种基本的物理现象,当电流通过具有霍尔电阻率的半导体材料时,受外部磁场影响,材料的一侧会产生电势差,这个电势差称为霍尔电压。霍尔电压的大小和方向与外部磁场的强度和方向有关。
  2. 霍尔元件:霍尔编码器中的霍尔元件是基于霍尔效应工作的传感器。它通常是一个薄片状的半导体材料,具有两个侧面连接的电极。当电流通过霍尔元件时,外部磁场的作用会导致在材料的一侧产生霍尔电压,从而形成一个电势差。
  3. 霍尔码盘:霍尔码盘是一个磁性的圆盘或条状物,上面布置有不同的磁极。这些磁极的分布呈现一定的规律,可以是正交编码、格雷码等。当霍尔码盘随着机械运动旋转时,磁极的变化会引起周围磁场的变化。
  4. 工作过程:当霍尔码盘旋转时,产生的磁场变化会影响附近的霍尔元件。这将导致霍尔元件产生电势差,从而产生霍尔电压。根据霍尔电压的变化,可以判断旋转角度或线性位移的变化。
  5. 信号处理:霍尔元件产生的霍尔电压会被放大和处理,通常使用电子电路将其转换为脉冲信号或数字量。这些脉冲信号可以用于测量位置的变化和方向。

EC11编码器:

在这里插入图片描述

EC11编码器是一种常见的增量式旋转编码器,广泛应用于各种电子设备和产品中,例如旋钮、开关、控制器等。它通常用于检测和测量旋转角度变化,以及提供用户界面控制。

以下是EC11编码器的工作原理:

  1. 机械结构:EC11编码器通常由一个中心旋钮、编码盘和内置的旋转传感器(通常是霍尔元件)组成。编码盘上通常有一系列的磁极或光学标记,这些标记随着旋钮的旋转而变化。
  2. 正交脉冲输出:当用户旋转EC11编码器的旋钮时,编码盘上的磁极或标记会在旋转传感器附近引发磁场或光信号的变化。旋转传感器会感知这些变化,并生成两组相位差90度的正交脉冲信号,通常称为A相和B相。这些脉冲信号的变化频率与旋钮的旋转速度成正比,而脉冲的相位关系则可以用于确定旋转方向(顺时针或逆时针)。
  3. 脉冲计数和处理:EC11编码器的输出脉冲信号通常被输入到微控制器、编码器接口电路或其他数字电子设备中。这些设备会对脉冲信号进行计数和处理,以测量旋转角度的变化。通过计数脉冲的数量,可以确定旋转的步数,从而获得旋转角度的信息。同时,根据A相和B相脉冲信号的相位差,可以判断旋转的方向。
  4. 按压功能:许多EC11编码器还具有中心按压按钮功能。当用户按下旋钮时,内置的开关会触发,产生一个用于触发操作的信号,如确认或选择。

编码器的信号输出:

编码器的信号通常由两组脉冲信号(A相和B相)组成,用于测量旋转角度或线性位移的变化。这些信号是编码器工作原理的核心部分,用于产生计数和判断旋转方向。

以下是关于编码器信号的一些重要信息:

  1. A相和B相脉冲信号:编码器通常输出两组相位差90度的脉冲信号,称为A相和B相。这些信号是正交的,意味着它们的变化情况可以用于判断旋转的方向(顺时针或逆时针)。

  2. Z相信号:一些编码器还可能输出一个Z相信号,也称为索引信号。Z相信号在一个完整的旋转周期内只产生一个脉冲,用于标记一个旋转周期的起始点。当编码器旋转到零点时,Z信号会发出一个脉冲表示现在是零位置 表示编码器转了1圈,可用来记录编码器转了多少圈

在这里插入图片描述
3. 脉冲数量:脉冲信号的数量与旋转角度或位移的变化成正比。通过计数这些脉冲,可以确定物体的旋转角度或线性位移的变化。

如果一个编码器是500线,说明这个编码器转一圈对应的信号线会输出500个脉冲

  1. 脉冲周期:脉冲信号的周期取决于编码器的分辨率。分辨率越高,每度或每单位位移产生的脉冲就越多,从而提供更精确的测量。

  2. 脉冲宽度:脉冲信号的宽度通常是固定的,但也可以在某些编码器中进行调整。脉冲宽度影响到信号的频率和精度。

编码器的信号可以通过适当的电子电路进行捕获和处理,以获取旋转角度或位移的信息。在微控制器或其他数字系统中,这些信号可以进一步用于计数、方向判断和实际的应用控制。

编码器正反旋转输出信号:

在这里插入图片描述

波形特点总结:

正转的时候信号线A先输出信号,信号线B后输出 A相超前B相90度 证明是正转
反转的时候信号线B先输出信号,信号线A后输出 B相超前A相90度 证明是反转

STM32的编码器工作模式:

STM32的定时器编码器模式包括三种。这三种编码器模式是:

  1. 仅在TI1计数(A相):在这种模式下,定时器仅根据A相信号(TI1输入通道)进行计数,B相信号(TI2输入通道)不会被计数。

  2. 仅在TI2计数(B相):在这种模式下,定时器仅根据B相信号(TI2输入通道)进行计数,A相信号(TI1输入通道)不会被计数。

  3. 在TI1和TI2都计数(A相和B相都计数):这种模式下,定时器会同时根据A相和B相信号(TI1和TI2输入通道)进行计数,通过相位差来判断旋转方向。

仅在TL1计数(A相)特点:

当TI2(B相)为高电平时:

1时刻: TI1(A相)下降沿, 则向上计数(正转)。

2时刻:TI1(A相)上升沿, 则向下计数(反转)

当TI2(B相)为低电平时:

3时刻: TI1(A相)上升沿, 则向上计数(正转)。

4时刻:TI1(A相)下降沿, 则向下计数(反转)
波形图:
在这里插入图片描述

仅在TL2计数(B相)特点

当TI1(A相)为高电平时:

1时刻: TI2(B相)上升沿, 则向上计数(正转)。

2时刻:TI2(B相)下降沿, 则向下计数(反转)

当TI2(B相)为低电平时:

3时刻: TI2(B相)下降沿, 则向上计数(正转)。

4时刻:TI2(B相)上升沿, 则向下计数(反转)
波形图:
在这里插入图片描述
在TL1和TL2都计数(A相和B相都计数)特点
一个脉冲信号周期完成4次跳变。精度提高

1时刻:TI2为低电平,TI1上升沿跳变,计数器向上计数;

2时刻:TI1为高电平,TI2上升沿跳变,计数器仍然向上计数;

3时刻:TI2为高电平,TI1下降沿跳变,计数器仍然向上计数;

4时刻:TI1为低电平,TI2下降沿跳变,计数器仍然向上计数。
在这里插入图片描述

三种工作模式如何选择:

需要增加测量的精度时,可以采用4倍频方式,即分别在A、B相波形的上升沿和下降沿计数,分辨率可以提高4倍,如果只是测速,不要求方向,那么只需要用单片机随意选择一个信号线就行了,然后定时器边沿触发,检测脉冲计数即可
一般是定时器的通道1和2才能作为编码器输入口,对应编码器输出的两相。
GPIO配置为配置为上拉输入模式一个定时器做一种工作,如果你配置了编码器模式,那么剩下的通道就不能配置其他模式两相计数模式下, 读出来数需要/4

STM32的编码器接口介绍:

定时器A相引脚B相引脚编码器模式
TIM1PA8PA9TI12
TIM2PA0PA1TI12
TIM3PA6PA7TI12
TIM4PB6PB7TI12
TIM5PA0PA1TI12
TIM8PC6PC7TI12

总结:

EC11是一种增量式编码器,其实生活中鼠标的中间的滚轮,汽车用CD上调整频率和音量的旋钮,用的都是编码器 ,了解了编码器是怎样工作之后,下期写一遍文章详细讲讲如何用STM32的定时器来识别编码器的旋转方向跟计数值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/87423.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue2 封装 webSocket 开箱即用

第一步: 下载 webSocket npm install vue-native-websocket --save 第二步: 需要在 main.js 中 引入 import websocket from vue-native-websocket; Vue.use(websocket, , {connectManually: true, // 手动连接format: json, // json格式reconnection:…

【Ubuntu】简化反向代理和个性化标签页体验

本文将介绍如何使用Docker部署Nginx Proxy Manager和OneNav,两个功能强大且易用的工具。Nginx Proxy Manager用于简化和管理Nginx反向代理服务器的配置,而OneNav则提供个性化的新标签页体验和导航功能。通过本文的指导,您将学习如何安装和配置…

JavaScript类

JavaScript 类(class) 类是用于创建对象的模板。 我们使用 class 关键字来创建一个类,类体在一对大括号 {} 中,我们可以在大括号 {} 中定义类成员的位置,如方法或构造函数。 每个类中包含了一个特殊的方法 constructor(),它是类…

【yolov系列:小白yolov7跑数据集建立环境】

首先在github上面获取别人的源码 这个是github的源码包,直接下载解压使用 打开解压后的文件夹应该可以看到这个页面。 进入文件夹的requirements.txt的页面 这篇文章是为了记录自己的环境配置过程,当作笔记使用来看,目前网上各种安装教程都…

深入浅出:MyBatis的使用方法及最佳实践

这里写目录标题 添加MyBatis框架⽀持配置连接字符串和MyBatis配置连接字符串配置 MyBatis 中的 XML 路径 添加业务代码创建数据库和表添加用户实体类添加 mapper 接⼝添加 UserMapper.xml添加 Service层添加 Controller层 增删改操作增加操作删除操作修改操作 添加MyBatis框架⽀…

浏览器多管闲事之跨域

年少时的梦想就是买一台小霸王游戏机 当时的宣传语就是小霸王其乐无穷~。 大些了,攒够了零花钱,在家长的带领下终于买到了 那一刻我感觉就是最幸福的人 风都是甜的! 哪成想... 刚到家就被家长扣下了 “”禁止未成年人玩游戏机 (问过卖家了&a…

泛微E-Office任意文件上传漏洞复现(HW0day)

0x01 产品简介 泛微E-Office是一款标准化的协同 OA 办公软件,泛微协同办公产品系列成员之一,实行通用化产品设计,充分贴合企业管理需求,本着简洁易用、高效智能的原则,为企业快速打造移动化、无纸化、数字化的办公平台。 0x02 漏…

【LeetCode】数据结构题解(13)[设计循环链表]

设计循环链表 😉 1.题目来源👀2.题目描述🤔3.解题思路🥳4.代码展示 所属专栏:玩转数据结构题型❤️ 🚀 >博主首页:初阳785❤️ 🚀 >代码托管:chuyang785❤️ &…

selenium环境搭建

文章目录 1、下载谷歌浏览器2、下载谷歌驱动 1、下载谷歌浏览器 浏览器下载完成后,在任务管理器中禁止浏览器的自动更新。因为驱动版本必须和浏览器一致,如果浏览器更新了,驱动就用不起了。 2、下载谷歌驱动 谷歌驱动需要和谷歌浏览器版本…

Spring-Cloud-Loadblancer详细分析_3

前两篇文章介绍了加载过程,本文从Feign的入口开始分析执行过程,还是从FeignBlockingLoadBalancerClient.execute来入手 public class FeignBlockingLoadBalancerClient implements Client {private static final Log LOG LogFactory.getLog(FeignBlock…

2023全新UI好看的社区源码下载/反编译版

2023全新UI好看的社区源码下载/反编译版 这次分享一个RuleAPP二开美化版(尊重每个作者版权),无加密可反编译版本放压缩包了,自己弄吧!!! RuleAPP本身就是一款免费开源强大的社区,基…

【MySQL--->数据库操作】

文章目录 [TOC](文章目录) 一、操作语句1.增2.删3.改4.查5.备份 二、字符集与校验规则 一、操作语句 1.增 语句格式:create database [if no exists]数据库名[create_specification [,create_specification] …]; 中括号内是可选项,if no exists是指如果数据库不存在就创建,存…

Win10启动Jmeter报错提示jmeter.log拒绝访问问题

jmeter版本:5.4.1 查看版本 在dos命令窗口中进入jmeter安装目录下的bin目录中:执行jmeter - v命令 我启动的方式是:进入jmeter安装目录下的bin目录中双击jmeter.bat启动的。结果报错,但是不影响使用。 报错日志如下: …

分类过程中的一种遮挡现象

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点,AB训练集各由6张二值化的图片组成,让A,B中各有3个点,且不重合,统计迭代次数并排序。 其中有10组数据 差值结构 迭代次数 构造平均列A 构造平均列AB…

spring-自定义AOP面向切面注解--统一切面处理-登陆信息采集

2023华为OD统一考试(AB卷)题库清单-带答案(持续更新)or2023年华为OD真题机考题库大全-带答案(持续更新) 1. 先写一个登陆记录注解(//记录:XXX时间,XXX姓名,XX…

编译redis-5.0.9报错zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录问题解决

上图 解决: make && make install MALLOClibc原因: 原因是jemalloc重载了Linux下的ANSI C的malloc和free函数。

机器视觉项目流程和学习方法

机器视觉项目流程: 00001. 需求分析和方案建立 00002. 算法流程规划和业务逻辑设计 00003. 模块化编程和集成化实现 00004. 调试和优化,交付客户及文档 学习机器视觉的方法: 00001. 实战学习,结合项目经验教训 00002. 学习…

视频监控汇聚EasyCVR平台WebRTC流地址无法播放的原因排查

开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多…

Mac下⬇️Git如何下载/上传远程仓库

使用终端检查电脑是否安装Git git --version 通过此文章安装Git ➡️ ​​​​​​​传送门🌐 方式1⃣️使用终端操作 1.下载——克隆远程仓库到本地 git clone [远程地址] 例:git clone https://gitee.com/lcannal/movie.git​ 2.编…

Redis简单学习

Redis是一个基于内存的key-value结构数据库 linux上面安装: Redis存储的是key-value结构的数据,其中key是字符串,value有常见的5中数据类型: 字符串 string哈希 hash列表 list集合 set有序集合 sorted set 字符串常用操作&am…