openyourbox 发表于 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);






页: [1]
查看完整版本: 搜了许久试了多次没果,还是发帖求助了,编码器的事