编码器的使用

视频

提高部分-第4讲 编码器的使用(1)_哔哩哔哩_bilibili

编码器单位

编码器总分辨率 = 编码器 一圈所计算的脉冲数(但由于定时器会倍频 所以计算时要乘以倍频系数)  在淘宝上看的分辨率=物理分辨率  实际分辨率=物理分辨率 * 定时器倍频数(一般是 4 )

假如  编码器PPR = 10  4分频 则 编码器总分辨率 为 10*4=40

PPR


2、PPR:PPR是指编码器在一个完整的旋转周期内输出的脉冲数。编码器通过光电或磁性传感器来检测旋转运动,并将其转换为脉冲信号输出。

SR

1、SR:SR是指编码器在一个完整的旋转周期内输出的离散步数。表示编码器的输出信号在一个旋转周期内的离散变化次数。例如,编码器的分辨率为1000SR,那么在一个完整的旋转周期内会输出1000个离散的步数。

增量式编码器倍频技术

输出脉冲波形信号 的两种形式

1.占空比50%的方波,通道A和通道B 相位差   90°

2.正弦波 这类模拟信号 通道A和通道B 相位差 90°

基于方波的编码器倍频技术 分辨率倍频(更精准了)

编码器计数规则:

码盘透过光线时 输出1(高电平) 

通过检测 高电平的数量来判断转过的位置

通过 检测A和B谁先到达高电平来 判定 运动的方向

我们将 检测高低电平变化的 思路 转换为   使用单个通道 上升沿 和下降沿 进行计数的模式 就能实现倍频

如下图 累计脉冲计数

如果 通道A 上升沿 和下降沿 都计数 一次 就能得到 X2的图形

如果是 A  B  相组合(A B通道相差1/4个周期) 上升沿 和下降沿 就能得到 X4  的图形

电机常用测速方法

测量方法:

对于 电机 转速 的测量  可以把  增量式  编码器 安装在电机上 用编码器的轴连接电机的轴, 用控制器(STM32)对编码器进行计数 最后通过 特定的方法 求出电机的转速。

测速方法:三种(M法、T法、MT法)

电机测速 M法:频率测量法

M法:

n(转速 r/s)= M0(编码器单位时间内的脉冲数) / (T0(单位时间)* C(单圈的脉冲数))
即 单位时间内的脉冲数 / 单圈的脉冲数
推导方法:
M0 / T0 = 1秒的总脉冲数 M1
M1 / C = 1秒转过多少圈(转速)

在理想 测量过程中 开始测量到结束测量(一个测量周期内) 得到的脉冲数 恰好是整数个脉冲数。

但实际上  开始计时时刻 和结束计时时刻 可能在 一个周期的任意一个位置

会使我们最大会有两个脉冲的误差。 

在速度越高时,2个脉冲误差的误差就比较小,

但在低速时,M0只有几个脉冲 此时2个脉冲误差的误差值就比较大.

 例:  已知 编码器转过一圈  脉冲数 4000, 在  2 S 内 测出来 产生脉冲数为 8000 可以理解为 

转过了2圈用了2S 转速就为1圈/秒。

电机测速 T法:周期测量法

T法:
n(转速 r/s)= F1(测量的脉冲频率) / ( C(单圈的脉冲数) * M2(测量的脉冲数)) = 1 / C * TE(编码器两个脉冲之间的时间)
推导方法 :
1 / F1 = T1(周期), T1 * M2 = TE
TE * C = T2 (编码器转一圈所用的时间)
1秒 / T2 (即1秒内转过多少圈 (转速) )

T法更适合测低速 和M法相反

电机测速:MT法

F0和C都为常数  转速n由 M0 和M1决定 

STM32的编码器接口

(TM32定时器功能 编码器功能高级定时器 1 8 通用定时器 2 5 才有)

通过 计数方向 是+/- 得到 编码器 的 旋转方向   向上计数--正向  向下计数---反向

假设: TI1:编码器通道A    T12:编码器通道B   

TI1FP1:反向后的TI1 = 反向后的编码器通道A   TI2FP2:反向后的TI2 = 反向后的编码器通道B

相反信号的电平:计数时,所参考的 另一个通道的电平   

这些电平决定了 计数器的技术方向

通过上表整理得到下表:

TI1比TI2 提前1/4 个周期 

如果以 TI1边沿为检测边沿  当检测到TI1的上升沿(高电平)时 TI2为 低电平 此时计数器就向上计数一次  

当T1 为下降沿时 TI2为高电平  计数器 依旧 向上计数一次 

TI1比TI2落后1/4 个周期

以 TI1的边缘 作为检测边缘

当检测到TI1上升沿时  TI2为高电平  此时  计数器 向下 计数一次

下一个时刻 检测 TI1的 下降沿  TI2为低电平 此时 计数器 再向下  技术一次

代码实现方式:(时基初始化结构体 编码器初始化结构体)

高级定时器 1 8  通用定时器 2  5  都有 编码器接口

对于STM32结构体中

EncoderMode :编码器模式 可以选择 通道A计数 通道B计数 A/B双通道计数
(实际上是选择 2倍频还是4倍频)

通道A   和通道B 的设置 是一样的!!

IC1/IC2Polarity: 输入捕获信号 极性选择   

在输入捕获模式中 用于选择 触发的边沿  但是在编码器模式中 用于输入的信号是否反向(这个和编码器计数触发边沿没有关系!!),只是用于匹配电机和编码器的旋转方向 

如果编码器的计数方向 与实际电机的旋转方向相反  只需要修改这一个选项就能匹配电机的旋转方向。 而不用再去修改硬件电路的连接。

选择 输入信号是否反向   用于 设定编码器输出的运动方向与实际的运动方向是相同还是相反  RISING是相同??

IC1Selection :选择 输入通道 是直连还是非直连  但 编码器模式 只能用于直连 

ICPrescaler 和 ICFilter :对输入信号的 分频和滤波  在实际采样中会对采得的信号 进行补偿 所以这两个选项很少用

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

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

相关文章

c++ 设计模式 的课本范例(下)

(19) 桥接模式 Bridge,不是采用类继承,而是采用类组合,一个类的数据成员是类对象,来扩展类的功能。源码如下: class OS // 操作系统负责绘图 { public:virtual ~OS() {}virtual void draw(cha…

昇思25天学习打卡营第13天|MindNLP ChatGLM-6B StreamChat

学AI还能赢奖品?每天30分钟,25天打通AI任督二脉 (qq.com) MindNLP ChatGLM-6B StreamChat 本案例基于MindNLP和ChatGLM-6B实现一个聊天应用。 1 环境配置 %%capture captured_output # 实验环境已经预装了mindspore2.2.14,如需更换mindspo…

使用 Swift 递归搜索目录中文件的内容,同时支持 Glob 模式和正则表达式

文章目录 前言项目设置查找文件读取CODEOWNERS文件解析规则搜索匹配的文件确定文件所有者输出结果总结前言 如果你新加入一个团队,想要快速的了解团队的领域和团队中拥有的代码库的详细信息。 如果新团队中的代码库在 GitHub / GitLab 中并且你不熟悉代码所有权模型的概念或…

Burpsuite靶场信息泄露相关的实验通关

目录 第一关:错误消息中的信息披露 第二关:调试页面信息披露 第三关:通过备份文件披露源代码 第四关:通过信息披露绕过身份验证 第五关:版本控制历史中的信息披露 最近看大佬的文章,发现了很对自己没有…

鲁工小装载机-前后桥传动轴油封更换记录

鲁工装载机 因前后桥大量漏齿轮油,故拆开查看、更换油封 一: 如图圈起来的地方是螺丝和钢板相别,用200的焊接电流用电焊机点开一个豁口后拆除螺丝。 转轴是拆除传动轴后的样子。 这就是拆下来的样子,这玩意插上边那图&…

2024最新初级会计职称题库来啦!!!

16.根据增值税法律制度的规定,下列各项中,属于"提供加工、修理修配劳务"的是()。 A.修理小汽车 B.修缮办公楼 C.爆破 D.矿山穿孔 答案:A 解析:选项AB:修理有形动产(…

江协科技51单片机学习- p21 LED点阵屏(8*8)

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…

发那科机床采集数据

前面两篇重点介绍了理论,从这篇开始,我们开始进行实战。首先从发那科机床开始,为何第一个将发那科。因为发那科系统机床有三最。最广泛(中国保有量最多)、 最多资料(发那科系统的开发包历史悠久&#xff0c…

【效率提升】新一代效率工具平台utools

下载地址:utools uTools这款软件,是一款功能强大且高度可定制的效率神器,使用快捷键alt space(空格) 随时调用,支持调用系统应用、用户安装应用和市场插件等。 utools可以调用系统设置和内置应用,这样可以方便快捷的…

Python计算n的阶乘的多种方法

1 问题 在课上,我们学习了用递归函数去计算一个自然数n的阶乘。但计算一个自然数n的阶乘是否就这一种方法呢? 2 方法 关于计算一个自然数n的阶乘,通过搜索,我们寻找到了除运用递归函数外的其他三种方法: 方法一 通过导…

CSS-实例-div 水平居中 垂直靠上

1 需求 2 语法 3 示例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>表格水平居中、垂直靠上示例…

解决Install/Remove of the Service Denied报错

1、问题概述&#xff1f; 在Windows系统中安装MySQL5.7.43的时候&#xff0c;运行mysqld install命令提示报错&#xff1a;Install/Remove of the Service Denied 意思是&#xff1a;安装/删除服务被拒绝 问题原因所在&#xff1a;就是你当前的权限不够&#xff0c;以管理员…

人工智能的目标分类

欢迎来到 Papicatch的博客 目录 &#x1f349;引言 &#x1f349;目标分类的概述 &#x1f348;背景 &#x1f348;分类的重要性 &#x1f34d;明确研究重点 &#x1f34d;促进应用推广 &#x1f34d;便于评估和比较 &#x1f348;分类的原则 &#x1f34d;基于应用领…

密钥库jks文件加载格式错误IOException:Invalid keystore format--已经解决

一、报错 java.lang.RuntimeException: java.io.IOException: Invalid keystore format Caused by: java.io.IOException: Invalid keystore format二、原因 原因&#xff1a;Java的密钥库jks文件放在/src/main/resources目录下,编译后jks文件被修改,导致keyStore.load读取…

支付宝支付之收款码支付

文章目录 收款码支付接入流程安全设计系统交互流程交易状态统一收单交易支付接口请求参数测试结果查询支付撤销支付退款支付退款结果退款说明 收款码支付 继&#xff1a;支付宝支付之入门支付 接入流程 安全设计 支付宝为了保证交易安全采取了一系列安全手段以保证交易安全。…

计网之IP

IP IP基本认识 不使用NAT时&#xff0c;源IP地址和目的IP地址不变&#xff0c;只要源MAC和目的MAC地址在变化 IP地址 D类是组播地址&#xff0c;E类是保留地址 无分类地址CIDR 解决直接分类的B类65536太多&#xff0c;C类256太少a.b.c.d/x的前x位属于网路号&#xff0c;剩…

kafka的工作原理与常见问题

定义 kafka是一个分布式的基于发布/订阅模式的消息队列&#xff08;message queue&#xff09;&#xff0c;主要应用于大数据的实时处理领域 消息队列工作原理 kafka的组成结构 kafka的基础架构主要有broker、生产者、消费者组构成&#xff0c;还包括zookeeper. 生产者负责发送…

高并发场景下的热点key问题探析与应对策略

目录 一、问题描述 二、发现机制 三、解决策略分析 &#xff08;一&#xff09;解决策略一&#xff1a;多级缓存策略 客户端本地缓存 代理节点本地缓存 &#xff08;二&#xff09;解决策略二&#xff1a;多副本策略 &#xff08;三&#xff09;解决策略三&#xff1a;热点…

计算机组成原理——锁存器和触发器

文章目录 1. SR锁存器 1.1 电路结构 1.2 电路解析 2. 带en输入的SR锁存器 2.1 ​​​​​​​电路结构 2.2 工作原理 3. ​​​​​​​带En输入的D锁存器 3.1 电路结构 3.2 工作原理 4. ​​​​​​​边沿触发的D触发器 4.1 电路结构 4.2 工作原理 1. SR锁存器 …

Python | Leetcode Python题解之第207题课程表

题目&#xff1a; 题解&#xff1a; class Solution:def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool:edges collections.defaultdict(list)indeg [0] * numCoursesfor info in prerequisites:edges[info[1]].append(info[0])indeg[info[…