旋转编码器与Arduino -知道一切

旋转编码器是一种机电设备,将轴的角度运动转换为模拟或数字代码。

旋转编码器可以在无线电设备中找到,如业余无线电或手持,在那里不间断或连续3600需要旋转才能调谐到正确的频率。

在这个项目中,通过Arduino来讲解旋转编码器的工作原理。下面的部分是对旋转编码器、电路和工作原理的介绍。

线路图

Arduino旋转编码器

旋转编码器电路连接

选择想要在Electronicshub中学习的下一组Arduino项目 :Arduino项目»

硬件要求

  • 旋转编码器
  • Arduino UNO
  • 液晶显示器

旋转编码器简介

旋转编码器是一种输入装置,提供有关旋钮旋转的方向和数量的信息。有一个与旋转编码器相关的选择开关,可通过推动旋钮激活。

常用的旋转编码器是增量式旋转编码器。这种类型提供了一个关于转轴的瞬时结果,通过产生两个方波输出,彼此是90度不相。

旋转编码器必须编码引脚A和B产生高或低输出取决于轴的旋转和方向。

旋转编码器的基本功能可以解释为两个开关的组合,它们由于轴的旋转而关闭或打开。

旋转编码器当轴旋转时,开关按一定的模式关闭和打开。如果输出被视为二进制,那么对于时钟旋转,A和B的输出将是00、01、11和10。

逆时针或逆时针旋转,输出为10、11、01、00。两个旋转方向的脉冲波形如下所示。

旋转编码器输出

为了测试序列,旋转编码器的输出引脚连接到两个led,如下面的电路所示。旋转编码器LED测试

当旋转编码器的旋钮按顺时针或逆时针方向旋转时,led按上述顺序亮起。

Arduino旋转编码器的电路设计

旋转编码器由五个引脚组成:两个编码引脚A和B(或CLK和DT),一个开关引脚和两个电源引脚Vcc和GND。

两个编码引脚和开关引脚提供数字信号。连接Arduino的引脚2、3、4。

为了显示菜单的对象,使用20X4液晶显示器。连接方式类似于16X2 LCD。LCD的RS和E连接Arduino的引脚5和6。

LCD的数据引脚D4 - D7(引脚11 - 14)连接Arduino的引脚7 - 10。

工作

旋转编码器提供无限的旋转方向上的选择按钮(推动旋钮)。这种独特的功能可以用在“菜单”选择应用程序中,轴的任意方向旋转将允许我们浏览菜单的内容,按下按钮将允许我们选择突出显示的菜单内容。

旋转编码器输出

在本课题中,通过Arduino和LCD来说明旋转编码器作为菜单选择器的工作原理。电路的工作原理如下。

Arduino的代码是按照应用程序编写并上传到Arduino的。上电时,LCD水平显示值列表。

顺时针旋转旋转编码器的轴,菜单项将从左到右变化,每转动旋钮,每个项目将被高亮显示。

一旦到达最后一个项目,进一步的旋转将不会导致任何操作,但最后一个项目将突出显示。

逆时针旋转时,菜单项将以相反方向显示。高亮显示的项目将显示在项目列表下面。

如果我们想要选择任何突出显示的项目,旋转编码器的按钮被按下。这将显示为选中项,选中项将保持此状态,直到选中下一项。

代码

请注意

  • 本项目通过Arduino的正常切换操作和作为菜单选择器来说明旋转编码器的工作原理。
  • 在每个子菜单中有多个层次结构的菜单可以作为选择器开关实现。
  • 如果菜单内容中的层次结构层次更多,那么必须在Arduino中使用Interrupts的概念。
  • 旋转编码器可用于伺服电机和步进电机的精密控制。

6的反应

  1. 谢谢你告诉我。
    我建好了,它工作得很好。我想在我的项目中使用这个菜单,但我需要一些帮助。
    我需要在每个菜单项中更改两到三个值。
    例如,如果选择菜单项为1,我需要编辑变量a和b的值,如果选择菜单项为2,我需要修改变量c, d和e,这些变量的值将在0到250之间。
    你觉得最简单的方法是什么?

    我知道这篇文章是2年前的,但是我希望你能帮助我。

    在连接图上,编码器连接到引脚2,3和4,但在代码中对应的引脚是10,11和12。不是什么大事,但可能会让人困惑。
    所有最好的!

留下一个回复

您的电子邮件地址将不会被公布。必填字段被标记*