编码器---正交编码器

news2025/4/21 6:37:05
一、正交编码器定义与核心作用

正交编码器(Orthogonal Encoder),又称增量式编码器,是一种通过输出两路相位差90°的脉冲信号(A相、B相)来测量旋转角度、速度和方向的传感器。其核心优势是通过A/B相的脉冲顺序判断旋转方向,通过脉冲计数测量位置或转速,广泛应用于电机控制、机器人、工业自动化等领域。

核心功能

  • 测量旋转角度(分辨率由脉冲数决定)
  • 判断旋转方向(正转/反转)
  • 计算转速(单位时间内的脉冲数)
  • 部分型号含零位信号(Z相),用于复位参考点
二、结构与工作原理
1. 物理结构
  • 码盘:透明圆盘上刻有均匀分布的透光狭缝(或齿槽),分为内圈(A相)、中圈(B相)、外圈(Z相,可选)。
    • A相和B相狭缝交错排列,相位差90°(即空间上相差1/4周期)。
    • Z相狭缝仅1个,用于输出零位信号(每圈1个脉冲,定位初始位置)。
  • 信号读取模块
    • 发光二极管(LED):发射光源透过码盘狭缝。
    • 光敏接收元件:接收透光信号,转换为电脉冲(高/低电平)。
      在这里插入图片描述
2. 工作原理
  • 脉冲输出

    • 旋转时,A相和B相交替输出正弦波或方波信号,相位差90°(正交)。
    • 正转时,A相超前B相90°;
    • 反转时,B相超前A相90°;
      在这里插入图片描述
  • 方向判断
    通过检测A相上升沿时B相的电平状态:

    • 若A相上升沿时B相为低电平 → 正转
    • 若A相上升沿时B相为高电平 → 反转
  • 分辨率计算
    分辨率(线数,Lines)指码盘每圈的脉冲数。例如200线编码器,每圈输出200个A相和B相脉冲。

    • 单倍频计数:直接数A相或B相脉冲,每线1个脉冲。
    • 四倍频计数:同时检测A/B相的上升沿和下降沿,每线输出4个脉冲(分辨率×4)。
三、信号类型与输出形式
  1. 信号类型

    • TTL电平:低电平0V,高电平5V或3.3V,适合短距离传输(<100米),需注意抗干扰。
    • HTL电平:低电平0-3V,高电平10-30V,抗干扰能力强,适合工业环境长距离传输(>200米)。
    • 差分信号(如RS422、EnDat):A+/A-、B+/B-差分输出,抑制共模干扰,用于高精度场景(如伺服电机)。
  2. 输出引脚

    • 标准配置:A相、B相、Z相(零位)、电源(VCC)、地(GND),共5根线。
    • 差分输出型:额外增加A-/B-/Z-反相信号,共8根线。
四、典型应用场景
  1. 电机控制
    • 伺服电机/步进电机的转速和位置反馈(如数控机床、机器人关节)。
    • 例:通过A/B相脉冲计数计算电机转速(RPM = 脉冲数/(时间×线数×60))。
  2. 运动控制
    • 直线运动平台(配合丝杠/齿轮箱,将旋转脉冲转换为直线位移)。
    • 无人机/平衡车的姿态检测(结合陀螺仪,优化控制算法)。
  3. 工业自动化
    • 传送带速度监测、印刷机定位、包装设备的精确启停控制。
  4. 测量设备
    • 转速表、角度仪、3D打印机的轴位控制。
五、选型关键参数
  1. 分辨率(线数,PPR)
    • 常见范围:50线 ~ 5000线,线数越高,精度越高(如1000线编码器,单圈角度精度360°/1000 = 0.36°)。
    • 注意:四倍频后分辨率×4(如1000线→4000脉冲/圈)。
  2. 输出类型
    • 低速、短距离:TTL电平(适配Arduino、STM32等单片机)。
    • 工业环境:HTL或差分信号(抗干扰)。
  3. 电源电压
    • 常用5V、12V、24V,需与控制器电源匹配(如3.3V单片机需电平转换模块)。
  4. 轴径与安装方式
    • 轴径:3mm、6mm、8mm等,需与电机轴匹配。
    • 安装方式:法兰安装(常用)、夹紧式、磁性联轴器(减震)。
  5. 防护等级
    • 普通环境:IP54(防尘溅水)。
    • 恶劣环境:IP67(防水防尘,可短时浸水),甚至IP69K(抗高压水冲洗)。
  6. 最高转速
    • 超过最大转速会导致脉冲丢失(如1000线编码器,最高转速10000RPM时,脉冲频率=1000×10000/60≈166kHz,需控制器输入捕获支持)。
六、电路连接与软件处理
1. 硬件连接(以TTL电平为例,连接STM32)
  • A相、B相接入单片机的定时器输入捕获引脚(支持正交解码模式)。
  • Z相(可选)接入普通GPIO,用于零位校准。
  • 示例电路:
    编码器 → STM32  
    A相   → TIMx_CH1  
    B相   → TIMx_CH2  
    VCC   → 5V或3.3V(需电平匹配)  
    GND   → GND  
    
2. 软件实现(正交解码模式)
  • 启用定时器正交解码功能(以STM32为例):
    TIM_Encoder_InitTypeDef encoderConfig;  
    encoderConfig.EncoderMode = TIM_EncoderMode_TI12; // 同时捕获A/B相边沿  
    encoderConfig.IC1Polarity = TIM_ICPolarity_Rising; // 上升沿触发  
    encoderConfig.IC2Polarity = TIM_ICPolarity_Rising;  
    HAL_TIM_Encoder_Init(&htimx, &encoderConfig);  
    HAL_TIM_Encoder_Start(&htimx, TIM_CHANNEL_ALL);  
    
  • 读取计数值与方向
    • 计数值:__HAL_TIM_GET_COUNTER(&htimx)(正负值表示方向,需根据初始位置校准)。
    • 方向:通过定时器状态寄存器判断(如STM32的TIMx_SR中的计数方向标志)。
  • 四倍频处理(非正交解码模式时):
    检测A/B相的上升沿和下降沿,每次边沿变化计数(需软件判断方向)。
3. 去抖动与抗干扰
  • 信号噪声:使用RC滤波电路(如1kΩ电阻+100nF电容)或施密特触发器整形。
  • 长线传输:差分输出编码器搭配差分接收芯片(如SN75176),抑制共模干扰。
七、注意事项
  1. 增量式 vs 绝对式编码器
    • 正交编码器(增量式):断电后位置信息丢失,需每次上电找零位(Z相)。
    • 绝对式编码器:通过多圈码盘直接输出绝对位置(如格雷码),无需找零,但成本高。
  2. 安装精度
    • 确保编码器轴与电机轴同轴度(偏差<0.1mm),避免偏心导致码盘磨损或信号异常。
    • 柔性联轴器可减少振动影响(尤其高速场景)。
  3. 高速场景限制
    • 脉冲频率超过控制器输入捕获上限时,需降低分辨率或使用专用解码芯片(如AD2S1200)。
  4. 零位校准
    • 每次上电后,使电机旋转至Z相脉冲触发位置,作为坐标原点。
八、购买建议
  • 品牌推荐
    • 工业级:倍加福(P+F)、欧姆龙(OMRON)、海德汉(Heidenhain)、瑞普(RESATRON)。
    • 性价比:汇川(INOVANCE)、奥普士(OPTEX)、中达优控(ZDAYK)。
  • 渠道
    • 工控平台:工控猫、阿里巴巴工业市场。
    • 电子商城:Mouser、Digi-Key(适合小批量样品)。
  • 选型工具
    部分品牌提供在线选型软件(如倍加福编码器选型工具),输入分辨率、环境等参数自动推荐型号。

通过正交编码器,可实现高精度的运动控制与位置检测,是工业自动化和智能设备的核心传感器之一。如需具体型号的电路设计或代码调试细节,可补充应用场景(如伺服电机控制、单片机开发平台等),进一步提供针对性方案。

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

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

相关文章

开发环境解决浏览器层面跨域问题

适用于开发环境临时调试等情况 新建一个 Chrome 的快捷方式&#xff0c;目标后面跟上&#xff1a; –disable-web-security --disable-gpu --user-data-dir%LOCALAPPDATA%\Google\chromeTemp 打开后会给出不安全的提示

2025年渗透测试面试题总结-拷打题库07(题目+回答)

网络安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 2025年渗透测试面试题总结-拷打题库07 1. CMS目录扫描的意义 2. 常见网站服务器容器 3. MySQL写入We…

深入理解Linux中的线程控制:多线程编程的实战技巧

个人主页&#xff1a;chian-ocean 文章专栏-Linux 前言&#xff1a; POSIX线程&#xff08;Pthreads&#xff09; 是一种在 POSIX 标准下定义的线程库&#xff0c;它为多线程编程提供了统一的接口&#xff0c;主要用于 UNIX 和类 UNIX 系统&#xff08;如 Linux、MacOS 和 BS…

【条形码识别改名工具】如何批量识别图片条形码,并以条码内容批量重命名,基于WPF和Zxing的开发总结

批量图片条形码识别与重命名系统 (WPF + ZXing)开发总结 项目适用场景 ​​电商商品管理​​:批量处理商品图片,根据条形码自动分类归档​​图书馆系统​​:扫描图书条形码快速建立电子档案​​医疗档案管理​​:通过药品条形码整理医疗图片资料​​仓储管理​​:自动化识…

【C++】 —— 笔试刷题day_22

一、添加字符 题目解析 这道题&#xff0c;给定两个字符串A和B&#xff0c;字符串A的长度要小于B的长度&#xff1b; 现在我们要对A字符串添加字符&#xff0c;使得A字符串长度等于B字符串的长度&#xff0c;并且要求对应位置的字母尽量相等&#xff0c;然后求出来不相等的字符…

【Android面试八股文】Android应用进程的启动流程【二】

应用进程 1.1 Android系统进程的启动过程&#xff1a; 1、init进程fork出Zygote进程后&#xff0c;Zygote进程会创建一个服务端socket&#xff0c;等待AMS发起socket请求。 同时&#xff0c;由Zygote进程fork出的SystemServer进程会启动各项系统服务&#xff0c;其中就包含了A…

“星睿O6” AI PC开发套件评测 - 部署PVE搭建All in One NAS服务器

Radxa O6平台上部署PVE搭建All in One NAS服务器 Radxa O6是一款性能卓越的单板计算机&#xff0c;其强劲的硬件配置和多样化的接口设计&#xff0c;使其成为家庭和小型企业理想的All in One服务器解决方案。值得一提的是&#xff0c;O6原生配备了两个5G网口&#xff0c;便于直…

全志H5,NanopiKP1lus移植QT5.12记录

移植步骤 机器环境下载QT5.12.0源码安装交叉编译器修改qmake.conf文件配置编译选项qt5的configure选项说明基本配置选项编译器和链接器选项功能模块配置第三方库集成注意事项 配置过程报错解决配置完成编译过程报错解决编译完成将arm-qt文件夹传送到开发板配置板子环境变量运行…

使用EXCEL绘制平滑曲线

播主播主&#xff0c;你都多少天没更新了&#xff01;&#xff01;&#xff01;泥在干什么&#xff1f;你还做这个账号麻&#xff1f;&#xff01;&#xff01;&#xff01; 做的做的&#xff08;哭唧唧&#xff09;&#xff0c;就是最近有些忙&#xff0c;以及…… 前言&…

Warcraft Logs [Classic] [WCL] Usage Wizard <HTOC>

‌HTOC&#xff08;十字军的试炼&#xff09;副本中各个BOSS的ID如下‌&#xff1a; ‌629 - 诺森德野兽‌ ‌633 - 加拉克苏斯大王‌ ‌637 - 派系冠军‌ ‌641 - 瓦格里双子‌ ‌645 - 阿努巴拉克‌ encounterID!637 and encounterID!641 encounterID NOT IN (637,641) 伤害 …

在服务器上部署MinIO Server

MinIO的优势 高性能&#xff1a;MinIO号称是目前速度最快的对象存储服务器&#xff0c;据称在标准硬件上&#xff0c;对象存储的读/写速度最高可以高达183 GB/s和171 GB/s&#xff0c;可惜我的磁盘跟不上 兼容性&#xff1a;MinIO基于Amazon S3协议&#xff0c;并提供了与S3兼…

一个改善Entity Framework异常处理和错误信息的开源项目

使用DDD从零构建一个完整的系统 使用Entity Framework作为ORM框架应该是绝大多数项目的选择&#xff0c;使得我们操作数据库变得简单方便&#xff1b;但是我们操作数据库&#xff0c;绝对是无法避免数据库发生异常的情况&#xff0c;数据库针对每一种异常也都会提供一个编码来…

计算机视觉——基于 Yolov8 目标检测与 OpenCV 光流实现目标追踪

1. 概述 目标检测&#xff08;Object Detection&#xff09;和目标追踪&#xff08;Object Tracking&#xff09;是计算机视觉中的两个关键技术&#xff0c;它们在多种实际应用场景中发挥着重要作用。 目标检测指的是在静态图像或视频帧中识别出特定类别的目标对象&#xff0…

PHP使用pandoc把markdown文件转为word

文章目录 首先安装pandocPHP处理 服务器操作系统是Linux&#xff0c;centos 首先安装pandoc yum install -y pandoc安装完成后输入如下代码&#xff0c;检查安装是否成功 pandoc --versionPHP处理 我把markdown内容存到了数据库里&#xff0c;所以要从数据库读取内容。对内容…

OBS 日期时间.毫秒时间脚本 date-and-time.lua

文章目录 OBS 日期时间.毫秒时间脚本&#xff1a;效果 OBS 日期时间.毫秒时间脚本&#xff1a; obs obslua source_name ""last_text "" format_string "" activated false-- 此函数用于获取精确的毫秒级时间戳&#…

探索大语言模型(LLM):目标、原理、挑战与解决方案

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言语言模型的目标语言模型的数学表示语言模型面临的挑战解决参数量巨大的方法1. 马尔可夫假设2. 神经网络语言模型3.自监督学习4. 分布式表示 脑图总结 前言 在自…

ES基本操作(Java API)

1. 导入restClient依赖 <!-- es --><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.12.1</version></dependency> <!…

得物官网sign签名逆向分析

打开得物官网&#xff0c;点击鞋类&#xff0c;可以看到请求 直接搜sign function p(e) {return f()("".concat(e ? s()(e).sort().reduce(function(t, n) {return "".concat(t).concat(n).concat(e[n])}, "") : "", "048a9…

vivado 时钟IP核(MMCM PLL)

CMT简介 FPGA中时钟管理模块&#xff08;CMT&#xff09;包括PLL和MMCM&#xff0c;用于将时钟倍频(比如输入时钟25M&#xff0c;我们要产生50M时钟)、分频(在不影响系统功能的前提下&#xff0c;较低的工作时钟&#xff0c;能够降低系统功耗)、改变相位偏移或占空比等。 当需要…

hackmyvm-airbind

收集信息 arp-scan -l nmap -sS -v 192.168.195.162 访问扫描到的ip&#xff0c;直接跳转到登录页面&#xff0c;利用admin/admin弱口令登录 在settings.php中找到一处文件上传&#xff0c;上传一句话木马&#xff0c;上传成功 反弹shell 上传php-reverse-shell.php 抓包&am…