|
本帖最后由 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);
|
|