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
    +关注

    关注

    1624

    文章

    21604

    浏览量

    601070
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16848

    浏览量

    349793
  • 旋转编码器
    +关注

    关注

    5

    文章

    158

    浏览量

    25926

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

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

收藏 人收藏

    评论

    相关推荐

    旋转编码器电路

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

    旋转编码器电路

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

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

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

    最全旋转编码器接线方法

    旋转编码器是一种光电式旋转丈量设备,它将被测的角位移直接改换成数字信号(高速脉冲信号)。因而可将旋转编码器的输出脉冲信号直接输入给plc,运
    发表于 08-06 11:15 3.1w次阅读
    最全<b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>接线<b class='flag-5'>方法</b>

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

    本文主要介绍了旋转编码器参数以及与plc的连接方法。在我们选择旋转编码器的时候会有一些专业术语的
    发表于 08-06 11:24 5491次阅读
    <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 3834次阅读
    <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次阅读

    旋转编码器能直接换吗_旋转编码器更换注意事项

    本文首先介绍了旋转编码器更换步骤,其次介绍了旋转编码器更换注意事项,最后介绍了旋转编码器替换原则
    发表于 08-06 14:18 9625次阅读

    旋转编码器与PLC连接方法

    具体接线方式如下:编码器的褐线接编码器工作电压正极,蓝线接编码器工作电压负极,输出线依次接入PLC的输入点,蓝线接外接电源负极,外接电源正极接入PLC的输入com端。
    的头像 发表于 11-12 10:46 1.2w次阅读
    <b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>与PLC<b class='flag-5'>连接</b>的<b class='flag-5'>方法</b>

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

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

    旋转编码器的原理

    旋转编码器可通过旋转可以计数正方向和反方向转动过程中输出脉冲的次数,旋转计数不像电位计,这种转动计数是没有限制的。配合旋转
    发表于 05-10 15:06 18次下载

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

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

    旋转编码器能直接换吗_旋转编码器更换注意事项

    旋转编码器更换步骤第一步,卸开电机后盖,编码器的后盖。第二步,松开编码器安装螺丝。第三步,旋转电机转子轴,使
    的头像 发表于 11-12 08:07 1555次阅读
    <b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>能直接换吗_<b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>更换注意事项

    旋转编码器的常见类型

    在工业自动化和精密测量领域中,旋转编码器是一种不可或缺的设备。它能够将旋转位置或旋转量转换成模拟或数字信号,为控制系统提供精确的位置和速度信息。随着技术的不断发展,
    的头像 发表于 05-29 15:59 765次阅读

    旋转编码器在PLC中怎么编程

    在工业自动化领域,旋转编码器与可编程逻辑控制(PLC)的结合应用极为广泛。旋转编码器通过提供精确的旋转
    的头像 发表于 06-17 09:24 1248次阅读