EVQWGD001拨盘编码器硬件连接arduino-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 549|回复: 1

[已解决] EVQWGD001拨盘编码器硬件连接arduino

[复制链接]
发表于 2022-4-5 16:32 | 显示全部楼层 |阅读模式
各位前辈你们好,最近我在网上找到一个编码器型号是EVQWGD001,想连接在arduino nano上使用.
经过网络搜寻,看到这个链接:https://blog.csdn.net/lowbob/article/details/121073860

文章使用单片机对接了这个编码器,但是我想把它接到arduino nano上
按照文章的提示,我把这个编码器如图连接.
火狐截图_2022-04-05T07-39-35.951Z.png

ab两个引脚分别接了10k的103电阻连在一起接在nano的gnd引脚,
a端接在d2引脚,b端接在d3引脚,两个引脚是可以使用中断判断

我的使用要求也是非常简单,利用d2,d3引脚中断判断这个滚轮是正转还是翻转
正转则position++,翻转就position--

使用的代码是站内的https://www.arduino.cn/thread-2423-1-1.html

经过反复修改代码.........一直出现16楼的情况,无论如何滚动,这个要么一直增加,要么一直减少,
https://www.arduino.cn/forum.php ... &fromuid=251864

期间一直改动这个HIGH和LOW的搭配,都是无效.
直到更换27楼的代码,确定是可以使用.
https://www.arduino.cn/forum.php ... &fromuid=251864

想请教前辈们,这两个代码他们的区别是什么?
为什么去掉(跳过)这段判断代码,不查询电平高低就生效了呢?
如果我把这段代码改为,左转绿色led闪,右转白色led闪是我下一步要做的.


// found a high-to-low on channel A ENA脚上升沿中断触发
  else{
    // check channel B to see which way 查询ENB的电平以确认是顺时针还是逆时针旋转
    if (digitalRead(ENCODER_B_PIN) == LOW)
      position--;
  }


发这个贴子是这个编码器太少见了,也很少arduino使用案例.也谢谢前辈们分享自己的代码.


 楼主| 发表于 2022-4-5 16:46 | 显示全部楼层
以下是我修改后,点亮led的代码.

#define ENCODER_A_PIN 2
#define ENCODER_B_PIN 3

long position;

void setup(){
  //setup our pins 初始化我们的需要的引脚
  pinMode(ENCODER_A_PIN, INPUT);
  pinMode(ENCODER_B_PIN, INPUT);
  pinMode(A4, OUTPUT);  //白色led输出引脚
  pinMode(A5, OUTPUT);  //绿色led输出引脚

  attachInterrupt(0, read_quadrature, CHANGE);

  //setup our serial 初始化Arduino串口
  Serial.begin(9600);
}

void loop(){

   Serial.print("Position: ");
   Serial.println(position, DEC);
   delay(20);
}

void read_quadrature(){  
  // found a low-to-high on channel A ENA脚下降沿中断触发
  if (digitalRead(ENCODER_A_PIN) == LOW){   
    // check channel B to see which way 查询ENB的电平以确认是顺时针还是逆时针旋转
    if (digitalRead(ENCODER_B_PIN) == LOW){
    digitalWrite(A4, HIGH);
    delay(20);
    digitalWrite(A4, LOW);
  }
  else{
    digitalWrite(A5, HIGH);
    delay(20);
    digitalWrite(A5, LOW);
  }
}
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:34 , Processed in 0.116438 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表