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

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

3天内不再提示

Arduino开发板的旋转编码器如何使用

454398 来源:一板网 作者:风筝 2020-10-26 15:47 次阅读

在本篇文章中,我们将学习如何在Arduino开发板上使用旋转编码器。我们将以带符号的数字同时显示顺时针和逆时针方向的编码值。

所需的组件

● Arduino UNO开发板

● 旋转编码器

● 1602 LCD显示屏

● 连接电线

● 面包板

旋转编码器

旋转编码器(Rotary Encoder),也称为轴编码器,是一种机电设备,可将轴或轴的角位置或运动转换为模拟或数字输出信号。旋转编码器有两种主要类型:绝对式和增量式。绝对值编码器的输出指示当前轴位置,从而使其成为角度传感器。增量编码器的输出提供有关轴运动的信息,通常将其所在位置处理为位置、速度和距离等信息。

连接电路图

下面的电路图简单演示了如何在Arduino上使用旋转编码器。在面包板或PCB上组装电路。

旋转编码器如何工作?

编码器具有一个磁盘,该磁盘具有均匀分布的接触区,这些接触区连接到公共引脚C和两个其他单独的接触引脚A和B,如下所示。

当磁盘逐步开始旋转时,引脚A和B将开始与公共引脚接触,因此将产生两个方波输出信号。

如果仅对信号的脉冲进行计数,则可以使用两个输出中的任何一个来确定旋转位置。但是,如果我们也要确定旋转方向,则需要同时考虑两个信号。

我们可以注意到,两个输出信号彼此之间相差90度。如果编码器顺时针旋转,则输出A将在输出B之前。

因此,如果我们每次计算信号从高到低或从低到高变化的步数,我们就会注意到两个输出信号的值相反。反之亦然,如果编码器逆时针旋转,则输出信号具有相等的值。因此,考虑到这一点,我们可以轻松地对控制器进行编程以读取编码器的位置和旋转方向。

源代码/程序

#include 《LiquidCrystal.h》

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

#define outputA 6

#define outputB 7

int counter = 0;

int aState;

int aLastState;

void setup() {

pinMode (outputA,INPUT);

pinMode (outputB,INPUT);

Serial.begin (9600);

lcd.begin(16,2);

// Reads the initial state of the outputA

aLastState = digitalRead(outputA);

}

void loop() {

aState = digitalRead(outputA); // Reads the “current” state of the outputA

// If the previous and the current state of the outputA are different, that means a Pulse has occured

if (aState != aLastState){

// If the outputB state is different to the outputA state, that means the encoder is rotating clockwise

if (digitalRead(outputB) != aState) {

counter ++;

lcd.clear();

} else {

counter --;

lcd.clear();

}

Serial.print(“Position: ”);

Serial.println(counter);

lcd.setCursor(0, 0);

lcd.print(“Position: ”);

lcd.setCursor(10, 0);

lcd.print(counter);

}

aLastState = aState; // Updates the previous state of the outputA with the current state

}
编辑:hfy

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

    关注

    41

    文章

    3360

    浏览量

    131474
  • 开发板
    +关注

    关注

    25

    文章

    4420

    浏览量

    93922
  • Arduino
    +关注

    关注

    184

    文章

    6426

    浏览量

    184801
收藏 人收藏

    评论

    相关推荐

    如何将增量旋转编码器Arduino连接

    在本教程中,您将学习如何将增量旋转编码器Arduino连接,以读取旋钮的运动。这对于在机器人和其他应用程序中创建用户界面或读取机械位置非常有用。
    的头像 发表于 02-11 10:00 382次阅读
    如何将增量<b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>与<b class='flag-5'>Arduino</b>连接

    旋转编码器的工作原理,旋转编码器的作用功能及应用

    旋转编码器是用于测量轴或轴旋转的组件。它们通常用于音频设备、DIY 游戏控制器中的音量旋钮,或用作不同 Arduino 或 Raspberry Pi 项目的输入设备。
    的头像 发表于 02-11 09:53 1161次阅读
    <b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>的工作原理,<b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>的作用功能及应用

    编码器与PLC的接线方法

    编码器分为旋转编码器和线性编码器两种。旋转编码器用于检测旋转
    发表于 12-22 09:20 456次阅读
    <b class='flag-5'>编码器</b>与PLC的接线方法

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

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

    Arduino IDE打开开发板管理搜索Arduino SAM的开发板不能找到怎么解决?

    Arduino IDE打开开发板管理搜索Arduino SAM的开发板不能找到怎么解决 可能被墙 也没有其他源可以替换 或者手动安装这个
    发表于 11-10 08:29

    R128开发指南:中断方式驱动旋转编码器

    旋转编码器有两种类型-绝对式和增量式。绝对编码器为我们提供旋钮的精确位置(以度为单位),而增量编码器报告轴已移动了多少增量。
    发表于 10-19 17:20 254次阅读
    R128<b class='flag-5'>开发</b>指南:中断方式驱动<b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>

    iC-Haus在旋转、直线编码器及磁栅尺有何应用?

    旋转、直线编码器及磁栅尺中得到广泛应用的两款产品:“磁性传感器”及“插补细分器”。
    的头像 发表于 10-12 18:17 574次阅读

    全志R128应用开发案例—中断方式驱动旋转编码器

    旋转编码器是一种位置传感器,可将旋钮的角位置(旋转)转换为用于确定旋钮旋转方向的输出信号。
    发表于 10-12 16:56 357次阅读
    全志R128应用<b class='flag-5'>开发</b>案例—中断方式驱动<b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>

    全志R128应用开发案例——中断方式驱动旋转编码器

    按键 PA24 编码器 CLK PA25 编码器 DT PA29 编码器 SW(未使用) 载入方案 我们使用的开发板是 R128-Devkit,需要
    发表于 10-12 15:51

    旋转编码器如何工作?如何与Arduino-HowToMechanicronics一起使用?

    包含详细说明+代码在本教程中,我们将学习旋转编码器的怎样工作的,以及如何使它与Arduino配合使用。旋转编码器是一种位置传感
    发表于 09-26 07:52

    编码器是什么?编码器有哪些分类?

    一种将角位移或者角速度转换成一连串电数字脉冲的旋转式传感器,我们可以通过编码器测量到位移或者速度信息。编码器通常由一个旋转部分和一个固定部分组成,
    的头像 发表于 08-21 11:50 5772次阅读
    <b class='flag-5'>编码器</b>是什么?<b class='flag-5'>编码器</b>有哪些分类?

    什么是旋转编码器 旋转编码器的工作原理

    旋转编码器是一种常见的传感器,它能够通过检测旋转轴的转动实现实时位置监测与控制。它具有高精度、长寿命、可重复性高、体积小等特点,因此在机器人控制、自动化生产、医疗设备、轮廓检测等方面被广泛应用。
    发表于 06-09 10:16 1734次阅读
    什么是<b class='flag-5'>旋转</b><b class='flag-5'>编码器</b> <b class='flag-5'>旋转</b><b class='flag-5'>编码器</b>的工作原理

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

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

    编码器种类及型号

    编码器种类及型号:最常见的编码器类型是旋转编码器和线性编码器旋转
    的头像 发表于 05-18 11:15 3757次阅读
    <b class='flag-5'>编码器</b>种类及型号

    CH32V103基础教程101-旋转编码器

    最近,手上拿到一个360度旋转编码器模块—KY-040 FOR模块,因此就想用它写一个应用教程。本章教程主要用到GPIO和EXTI(外部中断/事件控制)。 1、旋转
    发表于 05-15 16:31