关注  | 分享:

旋转编码器的使用-Arduino

Mr.D 2018-08-08

基础教程

旋转编码器是很多项目(例如3D打印机菜单)的理想输入设备。因此,在本教程中,我们将了解旋转编码器的工作原理以及如何将其与Arduino一起使用。
来动手做吧!

项目详情

项目创意灵感
旋转编码器,也称为光电编码器,是一种机电装置,可将轴或轴的角位置或运动转换为模拟或数字输出信号。
旋转编码器有两种主要类型
1)绝对值 - 绝对值编码器的输出表示当前的轴位置,使其成为角度传感器。
2)增量 - 增量编码器的输出提供有关轴运动的信息,通常在其他地方处理到位置,速度和距离等信息。
注意:我们在项目中使用的是增量编码器,因此我们将重点关注它。
设计特色创新
什么是增量编码器?
增量编码器将立即报告位置变化(顺时针和逆时针转动),这是某些应用中的基本功能。 但是,它不会报告或跟踪绝对位置。因此,增量编码器监视的机械系统必须移动到固定参考点以初始化位置来获得测量。
系统原理功能
引脚定义:
我们仔细观察编码器,它已经有了所需的上拉电阻。它有五个引脚 - 时钟,数据,开关,Vcc,GND。

内部结构:
我们旋转编码器的内部连接到磁盘(看图例)。如果我们顺时针或逆时针旋转,它将相应地移动。灰色部分为GND,金色触点连接到Vcc。有两个接触点放置在特定距离处,这些接触点只是我们的CLOCK和DATA线。

工作状态:
当我们旋转编码器时,两个输出将根据编码器的位置而改变。 这将产生两列脉冲。
仔细观察,这两个信号将在相位偏离90度。如果编码器顺时针旋转,则CLOCK将导通,如果编码器逆时针旋转,则DATA将导通。
并且看一下顺时针两个信号的状态变化将具有相反的值和逆时针相同的值。
现在,如果我们相应地编程我们的Arduino,我们可以让它与我们的项目一起工作。
完成情况概述
代码编写:
我们提供的代码,可以下载。
示例1:(Counter.ino)
现在在这个例子中,CLK连接到引脚3,DT连接到4,SW连接到5,然后我们有一些变量来存储数据。 在void设置部分CLK,DT和SW被设置为输入,然后启动串行命令,并且此处将当前位置存储在最后状态

首先,在void loop部分中,我们读取时钟的当前状态并使用它,否则检查它是否已更改。

如果状态!=最后状态意味着它已经改变了位置。 如果数据!=状态则CW否则CCW将相应地增加或减少计数器。

然后使用串行打印打印计数器变量。 如果按下开关,计数器将重置为0并打印它,最后将状态置于最后状态

示例2:(LEDBrightness.ino)
在这个例子中,我把计数器值放在模拟写入函数中,并使用约束函数来限制0-255之间的范围,以使其工作

注意:如果您在Arduino IDE中打开代码并阅读会更好。
看看视频吧,如何通过编码器调节LED的!
项目采用平台:

同学讨论

京ICP备17044568号-1 © 2020 北京时代行云科技有限公司