0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用MCU连接旋转编码器的方法

电子森林 来源:电子森林 作者:电子森林 2022-05-09 14:29 次阅读

昨天的文章中分享了一个小技巧:

设计小技巧:如何用MCUFPGA的一个数字IO测量2个电位计的阻值变化?

实际上是利用了我们常用的PWM功能的一个逆向思维应用。

今天再分享一个小技巧 - 如何使用一个MCU的模拟输入端口连接多个旋转编码器?

作为一种输入控制器件,旋转编码器被大量使用,尤其在测试测量领域,有的设备上会有多个旋转编码器用于调节多个参量。

bb987082-c203-11ec-bce3-dac502259ad0.png

一般来讲,旋转编码器需要至少2根微控制器的输入管脚,如果有内置的按键,还需要第三根。如果连接2个旋转编码器那就要消耗掉6根输入管脚,连接3个旋转编码器需要9根,以此类推。。。

bbb2ec8c-c203-11ec-bce3-dac502259ad0.png

常用的旋转编码器的外形

bbd67580-c203-11ec-bce3-dac502259ad0.jpg

旋转编码器的典型检测电路

然而,如果你用的MCU有ADC的功能,其实只需要一根模拟输入管脚就可以搞定多个旋转编码器的连接。

bbebc4ee-c203-11ec-bce3-dac502259ad0.jpg

硬禾学堂的STM32 DIY示波器板用一个旋转编码器和2个按键作为输入

听起来不可思议?

我们先看一下旋转编码器是如何使用的。

确定旋转方向:

编码器在旋转的时候会同时在其”A“和”B“管脚输出一串脉冲,从这两串脉冲的相位关系上就可以确定编码器的旋转方向 - 将一路脉冲延迟”一步“并将2个脉冲进行异或操作。

bc00afb2-c203-11ec-bce3-dac502259ad0.png

比如:

假设管脚 'A'的输出为:'00110011...' ,管脚'B'的输出为 '01100110...', 将 'A'的信号延迟一步,得到'01100110...'., 将延迟后的'A'同'B'异或,将得到'00000000...'. ,向另外要给方向旋转,管脚'A'的输出变为'11001100...' ('B'不变), 这样'A' 延迟一步编程'10011001...'.再跟'B'信号异或,就给出结果'11111111...'.

bc1433e8-c203-11ec-bce3-dac502259ad0.jpg

用模拟的方式来实现:

我们可以把'A'和'B'输出的信号一起看,当成是一个2bit的并行总线,能够有4种组合的输出: 0b00, 0b01, 0b10 and 0b11 (格雷码).多个位数的二进制值可以转换成一个模拟电压信号,这本质上就是一个数模转换器.

R-2R电阻网络

有一种非常简单实现的DAC是R-2R电阻网络,这种方法只使用两个电阻值R和2R就可以构成一个网络,每增加一个位数,只需要增加两个电阻。一个2根管脚的旋转编码器只需要4个电阻,如下图:

bc268a0c-c203-11ec-bce3-dac502259ad0.jpg

这个电路可以产生4个不同电压值的信号,这个信号用单片机ADC进行量化解码,即可解码得到管脚”A“和”B“的值。一般旋转编码器还有一个按键,考虑到按键的输入检测,电路可以变成下面这样:

bc4011c0-c203-11ec-bce3-dac502259ad0.jpg

一个实际的实现

两个旋转编码器再加上内置的按键,共需要一个6位的DAC.一般MCU内置的ADC为10位,可以非常轻松地解码由此生成的模拟信号,并且每1位相当于还有4bit的分辨率余量,因此我们可以使用5%精度的电阻 (当然1% 会更好).

R-2R的阻值相对于上拉电阻要足够大,以避免引起R-2R的比值失衡,同时上拉电阻也不能太小,否则流过开关触点的电流会太大。

2R电阻可以简单地将两个R阻值的电阻串联起来,还可以节省一种阻值的电阻.

为防止触点的抖动需要加一个0.01uF的电容,否则会引起两个编码器之间的干扰。

bc5032bc-c203-11ec-bce3-dac502259ad0.png

触点抖动噪声

bc61a7e0-c203-11ec-bce3-dac502259ad0.png

通过电容滤除掉触点抖动噪声

是不是又Get到一个新技能?

继续关注电子森林,会有更多设计技巧分享给大家。

原文标题:逆向思维: 如何用一根MCU的模拟输入检测多个旋转编码器?

文章出处:【微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1600

    文章

    21281

    浏览量

    592866
  • mcu
    mcu
    +关注

    关注

    145

    文章

    15989

    浏览量

    343342
  • 旋转编码器
    +关注

    关注

    5

    文章

    143

    浏览量

    25704

原文标题:逆向思维: 如何用一根MCU的模拟输入检测多个旋转编码器?

文章出处:【微信号:xiaojiaoyafpga,微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    旋转编码器得应用场景。#旋转编码器

    编码器旋转编码器
    学习电子知识
    发布于 :2022年10月06日 19:54:15

    旋转编码器的作用及工作原理

    在数字时代,需要快速高效地测量电机或旋转仪器旋钮上的机械轴的旋转。诸如电位计和旋转开关之类的模拟方法正在被可将旋转运动直接数字化的
    发表于 02-22 06:09

    旋转位移编码器检测直线位移的方法有哪些?

    旋转位移编码器检测直线位移的方法有哪些?
    发表于 10-29 06:46

    增量式旋转编码器设计

    阅读目录一、增量式旋转编码器二、硬件设计三、软件设计Development kit:MDK5.14IDE:UV4MCU:STM32F103C8T6回到顶部一、增量式旋转
    发表于 12-01 07:57

    旋转编码器电路

    旋转编码器电路
    发表于 02-09 16:18 3500次阅读
    <b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>电路

    旋转编码器电路

    旋转编码器电路
    发表于 04-26 12:02 2162次阅读
    <b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>电路

    格雷码式旋转编码器在位移检测中的应用

    格雷码式旋转编码器在位移检测中的应用 介绍格雷码式旋转编码器的特点,通过PLC转换成二进制式运算的方法,以及在位移检测中的应用。关键词:
    发表于 04-30 08:43 2081次阅读
    格雷码式<b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>在位移检测中的应用

    旋转编码器,旋转编码器是什么意思

    旋转编码器,旋转编码器是什么意思 旋转编码器概要
    发表于 03-03 15:27 2226次阅读

    ENHP旋转编码器应用及接线

    便捷手摇型增量旋转编码器特点:适用于数控机床,磨床等的手动脉冲输入、紧急停止开关,ENABLE开关、适用于4位,6位旋转开关。编码器如以信号原理来分,有增量型
    发表于 10-25 09:47 19次下载
    ENHP<b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>应用及接线

    旋转编码器参数_旋转编码器与plc连接

    本文主要介绍了旋转编码器参数以及与plc的连接方法。在我们选择旋转编码器的时候会有一些专业术语的
    发表于 08-06 11:24 5233次阅读
    <b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>参数_<b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>与plc<b class='flag-5'>连接</b>

    旋转编码器测量_旋转编码器安装方式

    本文主要介绍了旋转编码器测量及安装方法旋转编码器检测直线位移方法具体如下:使用“弹性连轴器”将
    发表于 08-06 11:40 3435次阅读
    <b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>测量_<b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>安装方式

    旋转编码器拆卸方法_旋转编码器型号说明

    本文首先介绍了旋转编码器拆卸方法,其次阐述了旋转编码器更换步骤,最后介绍了旋转
    发表于 08-06 11:48 1.7w次阅读

    使用PIC单片机连接旋转编码器方法

    助于它用于步进/伺服电机控制、导航菜单序列和增加/减少数字的值等等。在本篇文章中,我们将了解不同类型的旋转编码器及其工作原理。我们还将它连接到PIC单片机PIC16F877A,并通过旋转
    发表于 11-16 12:36 19次下载
    使用PIC单片机<b class='flag-5'>连接</b><b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>的<b class='flag-5'>方法</b>

    旋转编码器如何工作?有哪些类型?

    在本文中,我们将了解不同类型的旋转编码器及其工作原理。我们还将它与 Arduino 连接,并通过旋转编码器来控制整数的值,并在 16*2 L
    的头像 发表于 11-10 16:04 4545次阅读
    <b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>如何工作?有哪些类型?

    旋转编码器是什么?浅读旋转编码器工作原理与特点及应用

    旋转编码器是什么?浅读旋转编码器工作原理与特点及应用:旋转编码器是一种常见的传感器,它能够通过检
    的头像 发表于 05-29 09:21 2198次阅读
    <b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>是什么?浅读<b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>工作原理与特点及应用