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

编码器是什么:

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

编码器输出类型分类:

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

绝对编码器(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的定时器来识别编码器的旋转方向跟计数值。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySql(干货)

写这篇博客的目的不是为了将介绍原理,而是为了Sql中的代码操作属实太多了,在这里进行一个汇总,方便查阅!!! Sql分类 分类全称说明 DDL Data Definintion Language数据定义语言,用来定义数据库对…

wireshark入门指北

文章目录 前言安装Linux上wireshark安装 使用捕获的时候添加过滤条件抓取浏览器https内容 附录抓取非浏览器的https流量 前言 本文长期维护,记录使用wireshark的使用过程。 虽然有官方文档-Wireshark User’s Guide,但是不想去慢慢读。应用层的图形软件…

Flutter:文件上传与下载(下载后预览)

Dio dio是一个强大的Dart Http请求库,提供了丰富的功能和易于使用的API,支持文件上传和下载。 这个就不介绍了,网上有很多的封装案例。 background_downloader 简介 适用于iOS,Android,MacOS,Windows和L…

el-dialog嵌套,修改内层el-dialog样式(自定义样式)

el-dialog嵌套使用时,内层的el-dialog要添加append-to-body属性 给内层的el-dialog添加custom-class属性,添加自定义类名 <el-dialog:visible.sync"dialogVisible"append-to-bodycustom-class"tree-cesium-container"><span>这是一段信息<…

棒球和垒球的区别·棒球联盟

棒球和垒球的区别 1. 定义和起源 棒球起源于19世纪中叶的美国&#xff0c;最初被认为是一种游戏&#xff0c;而并非体育运动。那时&#xff0c;棒球常常被孩子们用来进行休闲娱乐。在20世纪初&#xff0c;它才开始被纳入体育运动的范畴。 垒球则是棒球的近亲&#xff0c;同样…

安装程序指南:FMSoft_uniGUI_Complete_Professional1.9.1567

解压和安装程序指南&#xff1a;FMSoft_uniGUI_Complete_Professional https://t00y.com/dir/1041485-3049764-93c76d?56118062 引言&#xff1a; 在开发软件的过程中&#xff0c;我们经常需要安装各种工具和框架来帮助我们实现项目的目标。本文将为您提供一个详细的指南&…

机器学习参数调优

手动调参 分析影响模型的参数&#xff0c;设计步长进行交叉验证 我们以随机森林为例&#xff1a; 本文将使用sklearn自带的乳腺癌数据集&#xff0c;建立随机森林&#xff0c;并基于泛化误差&#xff08;Genelization Error&#xff09;与模型复杂度的关系来对模型进行调参&…

【趋势检测和隔离】使用小波进行趋势检测和隔离研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

MD-MTSP:星雀优化算法NOA求解多仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点)

一、星雀优化算法NOA 星雀优化算法(Nutcracker optimizer algorithm,NOA)由Mohamed Abdel-Basset等人于2023年提出&#xff0c;该算法模拟星雀的两种行为&#xff0c;即&#xff1a;在夏秋季节收集并储存食物&#xff0c;在春冬季节搜索食物的存储位置。星雀优化算法(Nutcrack…

Azure通过自动化账户实现对资源变更

Azure通过自动化账户实现对资源变更 创建一个自动化账户第一种方式 添加凭据&#xff08;有更改资源权限的账户&#xff0c;没有auth认证情况&#xff09;创建一个Runbook&#xff0c;测试修改 AnalysisServices 定价层设置定时任务&#xff1a;开始定时任务&#xff1a; 第二种…

STM32F429IGT6使用CubeMX配置GPIO点亮LED灯

1、硬件电路 2、设置RCC&#xff0c;选择高速外部时钟HSE,时钟设置为180MHz 3、配置GPIO引脚 4、生成工程配置 5、部分代码 /* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */HAL_GPIO_WritePin(LED_RGB_GPIO_Port, LED_RGB_Pin, GPIO_…

RocketMQ 延迟消息

RocketMQ 延迟消息 RocketMQ 消费者启动流程 什么是延迟消息 RocketMQ 延迟消息是指&#xff0c;生产者发送消息给消费者消息&#xff0c;消费者需要等待一段时间后才能消费到。 使用场景 用户下单之后&#xff0c;15分钟未支付&#xff0c;对支付账单进行提醒或者关单处理…

OpenCV实例(八)车牌字符识别技术(二)字符识别

车牌字符识别技术&#xff08;二&#xff09;字符识别 1.字符识别原理及其发展阶段2.字符识别方法3.英文、数字识别4.车牌定位实例 1.字符识别原理及其发展阶段 匹配判别是字符识别的基本思想&#xff0c;与其他模式识别的应用非常类似。字符识别的基本原理就是对字符图像进行…

实时时钟+闹钟

在江科大实时时钟的基础上添加闹钟的配置&#xff0c;参考http://t.csdn.cn/YDlYy。 实现功能 &#xff1a;每隔time秒蜂鸣器响一次、设置闹钟的年月日时分秒&#xff0c;到时间蜂鸣器响。 前三个函数没有变&#xff0c;添加 void RTC_AlarmInit(void) 闹钟的中断配置void…

【算法题】螺旋矩阵I (求解n阶螺旋矩阵问题)

一、问题的提出 螺旋矩阵是一种常见的矩阵形式&#xff0c;它的特点是按照螺旋的方式排列元素。n阶螺旋矩阵是指矩阵的大小为nn&#xff0c;其中n为正整数。 二、解决的思路 当N1时&#xff0c;矩阵为; 当N2时&#xff0c;矩阵为; 当N>2(N为偶数如N4)时&#xff0c;矩阵…

Arduino ESP32 v2 使用记录:开发环境搭建

文章目录 目的开发环境搭建程序下载测试使用VS Code进行开发批量烧录固件到模块中总结 目的 在之前的文章 《使用Arduino开发ESP32&#xff08;01&#xff09;&#xff1a;开发环境搭建》 中介绍了使用Arduino开发ESP32的开发环境搭建内容&#xff0c;只不过当时的 Arduino co…

Django进阶

1.orm 1.1 基本操作 orm&#xff0c;关系对象映射。 类 --> SQL --> 表 对象 --> SQL --> 数据特点&#xff1a;开发效率高、执行效率低&#xff08; 程序写的垃圾SQL &#xff09;。 编写ORM操作的步骤&#xff1a; settings.py&#xff0c;连…

Metasploitable2靶机漏洞复现

一、信息收集 nmap扫描靶机信息 二、弱口令 1.系统弱口令 在Kali Linux中使用telnet远程连接靶机 输入账号密码msfadmin即可登录 2.MySQL弱口令 使用mysql -h 靶机IP地址即可连接 3.PostgreSQL弱密码登录 输入psql -h 192.168.110.134 -U postgres 密码为postgres 输入\…

线性代数(二) 矩阵及其运算

前言 行列式det(A) 其实表示的只是一个值 ∣ a b c d ∣ a d − b c \begin{vmatrix} a & b\\ c & d\end{vmatrix} ad -bc ​ac​bd​ ​ad−bc&#xff0c;其基本变化是基于这个值是不变。而矩阵表示的是一个数表。 定义 矩阵与线性变换的关系 即得 ( a 11 a 12…

数据结构——单链表的实现(c语言版)

前言 单链表作为顺序表的一种&#xff0c;了解并且熟悉它的结构对于我们学习更加复杂的数据结构是有一定意义的。虽然单链表有一定的缺陷&#xff0c;但是单链表也有它存在的价值&#xff0c; 它也是作为其他数据结构的一部分出现的&#xff0c;比如在图&#xff0c;哈希表中。…