编码器原理和功能介绍

news2024/12/27 14:01:47

目录

概述

1 编码综述

2 增量式旋转编码器

2.1 功能介绍

2.2 实现原理

3 绝对式编码器

3.1 实现原理

3.2 二进制编码器

3.3 格雷码编码器

4 旋转式编码器原理

5 编码器基本参数

5.1 分辨率

5.2 精度

5.3 最大响应频率

5.4  信号输出形式

6 自制简易编码器


概述

本文只要介绍编码器的相关内容,包括编码器的分类,实现原理以及其相关的精度等内容,还介绍了,如何使用简单的对射光电传感器和码盘制作一个简易的旋转式编码器。

1 编码综述

编码器,是一种用来测量机械旋转或位移的传感器。这种传感器能够测量机械部件在旋转或直线运动时的位移位置或速度等信息,并将其转换成一系列电信号。编码器是工业中常用的传感器之一,广泛应用于工业生产当中需要对机械系统进行监视或控制的场景,包括工业控制、机器人、照相机镜头、雷达平台以及部分计算机输入设备例如轨迹球和鼠标滚轮等等。

编码器可以根据不同的方式分出很多种类型。

1)根据检测原理,可分为光学式、磁式、感应式和电容式。

2)根据内部机械结构的运动方式,可分为线性编码器和旋转编码器。

3)根据其刻度实现方法及信号输出形式,又可分为增量式、绝对式以及混合式三种。

增量式旋转编码器

2.1 功能介绍

增量式旋转编码器是将设备运动时的位移信息变成连续的脉冲信号,脉冲个数表示位移量的大小。只有当设备运动的时候增量式编码器才会输出信号。

编码器一般会把这些信号分为通道 A和通道 B 两组输出,并且这两组信号间有 90° 的相位差。同时采集这两组信号就可以知道设备的运动和方向。

除了通道 A、通道 B 以外,很多增量式编码器还会设置一个额外的通道 Z 输出信号,用来表示编码器特定的参考位置,传感器转一圈 Z 轴信号才会输出一个脉冲。

增量式编码器只输出设备的位置变化和运动方向,不会输出设备的绝对位置。

2.2 实现原理

增量式旋转编码器的案例

3 绝对式编码器

3.1 实现原理

绝对式旋转编码器是将设备运动时的位移信息通过二进制编码的方式变成数字量直接输出。这种编码器与增量式编码器的区别主要在内部的码盘。绝对式编码器的码盘利用若干透光和不透光的线槽组成一套二进制编码,这些二进制码与编码器转轴的每一个不同角度是唯一对应的,读取这些二进制码就能知道设备的绝对位置,所以叫它绝对式编码器。绝对式编码器一般常用自然二进制、格雷码或者 BCD 码等编码方式。

3.2 二进制编码器

绝对式编码器在总体结构上与增量式比较类似,都是由码盘、检测装置和放大整形电路构成,但是具体的码盘结构和输出信号含义不同。绝对式编码器的码盘上有很多圈线槽,被称为码道,每一条码道内部线槽数量和长度都不同。它们共同组成一套二进制编码,一条码道对应二进制数的其中一个位,通常是码盘最外侧的码道表示最低位,最内侧的码道表示最高位。码道的数量决定了二进制编码的位数,一个绝对式编码器有 N 条码道,它就能输出 N 位二进制数,且输出二进制数的总个数是 2N 个。这些二进制数与转轴的机械位置是固定的,和编码器外部因素无关,所以叫做绝对式编码器。在接收设备断电重启后绝对式编码器无需寻找参考零点。下图是一个简化版的绝对式编码器码盘,其中白色块透光表示 0,黑色块不透光表示 1。码盘上的二进制数逆时针依次增大。

自然二进制码盘
 

3.3 格雷码编码器

自然二进制码盘读数很方便直观, 但是它在实际应用中容易造成读数偏差很大,例如:当码盘停止旋转时,光线照射在 0000 和 1111 这两个相邻的区域之间,此时输出的二进制数可能是0000~1111 中的任何一个,此时的读数和码盘的实际位置可能就相差很远了。为了避免读数和实际位置出现巨大偏差,我们可以改进一下二进制码的排列方式,

使用格雷码形式,如下图所示:

格雷码盘有 4 个码道,同样的也能表示 16 个二进制数,但是任意相邻的两个区域之间的二进制码只有一位不同。当我们采用格雷码盘时,如果码盘停止旋转, 光线照射到码盘相邻两个区域之间,其最终输出的二进制数最多只会相差一位,此时位置的偏差范围就很小了。

格雷码

格雷码是一种二进制编码方式,在该编码中,连续的两个数字仅有一位二进制位发生变化。格雷码的主要特点是在任意两个相邻的数之间只有一个二进制位发生变化,这样可以减少在数据传输过程中的误差和干扰。格雷码的生成可以通过递归方法来实现。

具体步骤如下:

  1. 将n位二进制码的最右边一位写下;
  2. 上一步写下的二进制码的左边拿来写成一个n-1位的二进制码;
  3. 将生成的n-1位二进制码的最右边一位写下;
  4. 上一步写下的二进制码的左边拿来写成一个n-2位的二进制码;
  5. 重复上述步骤,直到所有的二进制码都写完。

4 旋转式编码器原理

旋转编码器的原理示意图如下图所示。旋转编码器内部大都由码盘、光电检测装置和信号处理电路等部分构成。码盘上刻了若干圈线槽,线槽等距并且可透光,当码盘旋转时就会周期性的透过和遮挡来自光电检测装置的光线,这样检测装置就会周期性的生成若干电信号。但是这些电信号通常比较微弱,需要加入一套处理电路对信号进行放大和整形,最后把信号整形为脉冲信号并向外输出。

5 编码器基本参数

5.1 分辨率

指编码器能够分辨的最小单位。对于增量式编码器,其分辨率表示为编码器转轴旋转一圈所产生的脉冲数,即脉冲数/转 (Pulse Per Revolution 或 PPR)。码盘上透光线槽的数目其实就等于分辨率,也叫多少线,较为常见的有 5-6000 线。对于绝对式编码器,内部码盘所用的位数就是它的分辨率,单位是位 (bit),具体还分单圈分辨率和多圈分辨率。

5.2 精度

首先明确一点,精度与分辨率是两个不同的概念。精度是指编码器每个读数与转轴实际位置间的最大误差,通常用角度、角分或角秒来表示。例如有些绝对式编码器参数表里会写 ±20′′,这个就表示编码器输出的读数与转轴实际位置之间存在正负 20 角秒的误差,精度由码盘刻线加工精度、转轴同心度、材料的温度特性、电路的响应时间等各方面因素共同决定。

5.3 最大响应频率

指编码器每秒输出的脉冲数,单位是 Hz。计算公式:最大响应频率 = 分辨率 * 轴转速/60。

5.4  信号输出形式

对于增量式编码器,每个通道的信号独立输出,输出电路形式通常有集电极开路输出、推挽输出差分输出等。对于绝对式编码器,由于是直接输出几十位的二进制数,为了确保传输速率和信号质量,一般采用串行输出或总线型输出,例如同步串行接口 (SSI)、 RS485、 CANopen 或EtherCAT 等,也有一部分是并行输出,输出电路形式与增量式编码器相同。

6 自制简易编码器

在实际应用中,如果对编码器的精度要求不是很高的场合,可使用对射光电传感器和码盘制作简易的光电编码器,其具体结构如下图:

图一: 对射光电传感器的安装位置

图二:码盘的安装位置

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

matlab入门基础笔记

1、绘制简单三角函数: 绘制正弦曲线和余弦曲线。x[0:0.5:360]*pi/180; plot(x,sin(x),x,cos(x)); (1)明确x轴与y轴变量: 要求为绘制三角函数: X轴:角度对应的弧度数组 Y轴:对应sin(x)的值 求…

【数据结构C++】表达式求值(多位数)课程设计

📚博客主页:Zhui_Yi_ 🔍:上期回顾:图 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🎇追当今朝天骄,忆顾往昔豪杰。 …

使用Ollama+OpenWebUI本地部署阿里通义千问Qwen2 AI大模型

🏡作者主页:点击! 🤖AI大模型部署与应用专栏:点击! 🤖Ollama部署LLM专栏:点击! ⏰️创作时间:2024年6月17日22点50分 🀄️文章质量&#xff…

函数(下) C语言

函数下 嵌套调用和链式访问1. 嵌套调用2. 链式访问 函数的声明和定义1. 单个文件2. 多个文件3. static 和 extern3.1 static 嵌套调用和链式访问 1. 嵌套调用 嵌套调用就是函数之间的互相调用,每个函数就像⼀个乐高零件,正是因为多个乐高的零件互相无缝…

MacOS - 启动台多了个『卸载 Adobe Photoshop』

问题描述 今天安装好了 Adobe Ps,但是发现启动台多了个『卸载 Adobe Photoshop』强迫症又犯了,想把它干掉! 解决方案 打开访达 - 前往 - 资源库,搜索要卸载的名字就可以看到,然后移除到垃圾筐

17. 一个I/O项目:构建命令行程序(下)

目录 五、采用测试驱动开发完善库的功能5.1 编写失败测试用例5.2 编写成功测试用例5.3 在run函数中打印搜索到的行 六、添加大小写不敏感功能七、将错误信息输出到标准错误八、附录完整代码 五、采用测试驱动开发完善库的功能 5.1 编写失败测试用例 在lib.rs中写一个简单的se…

爱死了,4款逆天IOS App推荐!

河马喝水提醒 「河马喝水提醒」是一款生活小助手应用,旨在帮助用户建立并维持定时喝水的良好习惯。该应用不仅是一个提醒闹钟,更是健康生活的贴心伙伴。它每天定时推送提醒,帮助用户在繁忙的日常中不忘补充水分。此外,该应用还提供…

jenkins中配置参数化,并在python脚本接收参数实现参数化执行

在公司内进行Monkey测试脚本集成jenkins时,因为需要指定公司内不同的app进行测试。那么可以有两种方法解决该问题,要么创建多个脚本文件,多个jenkins jobs,进行构建。要么可以在配置job时通过传参数的方式,在python脚本…

Facebook视角下的文化多样性:全球社交的聚合

在当今数字化时代,社交媒体已经成为连接全球各地人们的重要平台之一。而在这众多平台中,Facebook无疑是其中的佼佼者,不仅仅是一个社交网络,更是一个涵盖了丰富文化多样性的全球社交聚合地。本文将深入探讨Facebook在促进文化多样…

[python] matplotlib.pyplot 绘制高宽不同、多行多列子视图

假如我们想要绘制这样的效果: 方式1: # -*- coding: utf-8 -*- import matplotlib.pyplot as plt import numpy as np# 声明一个GridSpec对象实例,创建的是6行2列的图像布局。 grid plt.GridSpec(nrows6, ncols2, wspace0.2, hspace0.2)# 设…

京东618 :AI总裁数字人、京东Apple Vision Pro版亮相

2004年6月18日,刚刚转型电商才半年的京东,用最互联网的方式为忠实粉丝打造了一场价格降到“难以置信”的店庆促销活动,这场促销活动还有一个很具有当年网络小说特质的名字——“月黑风高”。 2024年京东618,早已成为一场亿万消费…

【只是查漏补缺】关于动力节点2024版java新课程

反编译命令 javap进行反编译操作,例如:javap Test;使用jd-gui.exe来实现反编译。 二进制数据是采用0和1来表示,则换算单位肯定为2的n次方,而2的10次方恰好等于1024,所以就使用了1024来作文文件存储的换算单…

Erlang程序设计[Part1-Part2 chapter4]

前言: 环境安装 Erlang Shell,CSDN搜教程 Erlang Shell实操 启动 erl Erlang Shell以表达式为执行单位? 结束标志 .加上回车 Part1 为何用 Erlang chapter 1 什么是并发 并发vs并行 并发 单核cpu运行多个进程 一次运行一个 并行 多…

批量导出兜底回复对话,迭代优化聊天机器人 | Chatopera 云服务

持续优化知识库 聊天机器人的知识库,对话技能,需要长期的优化。这是因为,一方面,初期上线的机器人所依赖的数据量通常有限;另一方面,市场不断变化,客户产品新的问题。 上线聊天机器人的目的之…

MyBatis Plus Generator代码生成

一、MyBatis Plus Generator MyBatis Plus是一个功能强大的持久层框架,它简化了MyBatis的使用,提供了许多便捷的功能。其中,MyBatis Plus Generator是一个强大的代码生成器,可以帮助我们快速地根据数据库表结构生成对应的实体类、…

怎么控制多个存储设备的访问权限?数据安全存储方案来了

数据安全存储是指将数据以安全的方式存储在存储系统中,以确保数据的机密性、完整性和可用性。要控制数据安全存储的权限以保障安全,可以采取以下措施: 访问控制列表(ACLs):使用ACLs来定义对存储数据的访问权…

丹麦海外媒体报道:媒体投放发稿助力企业在海外扭转战局

大舍传媒 丹麦海外媒体报道中,大舍传媒作为一家专业的媒体投放公司,正发挥着重要作用,帮助企业在海外扭转战局。作为丹麦领先的媒体投放机构,他们为企业提供了全方位的品牌传播服务,帮助企业在海外市场取得成功。 大舍…

MySQL 架构

本篇主要介绍一下MySQL的架构 目录 一、整体架构 二、连接层 网络端口 连接管理线程 三、服务层 NoSQL接口与SQL接口 Parser(语法分析器) Optimizer(查询优化器) Cache & Buffers(缓存) 四、存储引擎层…

可复用验证的测试用例 5大编写技巧

编写可复用验证的测试用例,节省了编写新测试用例的时间和资源,提高了测试效率和项目质量,减少错误修复成本,有利于实现较高的投入产出比。缺乏可复用的测试用例会导致测试团队不断重复创建相似的测试场景,消耗大量时间…

CleanMyMac中文版2024破解版安装包下载最新官方免费激活码

CleanMyMac中文版,让你的电脑焕然一新! 大家好,今天我要给大家推荐一款神奇的软件——CleanMyMac中文版。作为一个长期使用Mac的用户,我一直在寻找一款能够彻底清理电脑垃圾和优化系统的工具,而CleanMyMac正是我心心念…