极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 38888|回复: 0

搜了许久试了多次没果,还是发帖求助了,编码器的事

[复制链接]
发表于 2021-3-13 16:41:15 | 显示全部楼层 |阅读模式
本帖最后由 openyourbox 于 2021-3-13 16:43 编辑

学习测试读编码器数据和显示从中文站和官方这里的示例都试过了
结果自然是都不成,所以来问大伙
#include <U8glib.h>
U8GLIB_ST7920_128X64_4X u8g(23, 17, 16);
int val;
int encoder0PinA = 53;
int encoder0PinB = 52;
int encoder0Pos = 0;
int encoder0PinALast = LOW;
int n = LOW;

void setup() {
  pinMode (encoder0PinA, INPUT_PULLUP);
  pinMode (encoder0PinB, INPUT_PULLUP);
  Serial.begin (115200);
}

void loop() {
  n = digitalRead(encoder0PinA);
  if ((encoder0PinALast == LOW) && (n == HIGH)) {
    if (digitalRead(encoder0PinB) == LOW) {
      encoder0Pos--;
    } else {
      encoder0Pos++;
    }
    Serial.print (encoder0Pos);
    Serial.print ("/");
    u8g.firstPage();  
  do {
    u8g.setFont(u8g_font_5x7);
    u8g.drawStr(10,10,"run:              m.");


    u8g.drawStr(10,30,"speed :          r/min.");
    u8g.setPrintPos(50, 40);
    u8g.print(encoder0Pos);
  } while( u8g.nextPage() );
  }
  encoder0PinALast = n;
}

第一步试验编码器功能性的代码是成功的,增减都正常

第二步就试计算脉冲了,结果返回值都是0
代码都是官方示例找里来的,按理编码器都正常了,不知道怎么第二段就出不来数,一直在0
#define encoder0PinA 52
#define encoder0PinB 53

#include <U8glib.h>
U8GLIB_ST7920_128X64_4X u8g(23, 17, 16);






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 19:10 , Processed in 0.044693 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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