# 最简化编码器计数程序( 有效5行,验证于arduino )

# 最精简arduino编码器计数程序( 有效5行,验证于arduino Nano

    • 插入链接与图片

#include
TM1637 tm1637(3, 2 ); //定义引脚连接 这是编码器程序 可按可加减计数
int coderCLK = 4; // Connected to CLK on KY-040 CLK接 pin4
int coderDT = 5; // Connected to DT on KY-040 DT接pin5
int coderSW = 6; // Connected to DT on KY-040 SW接pin6 SW是按键,
int8_t ListDisp[4];
int encoderPosCount = 50;
int val = 0;
void setup() {
tm1637.set();
tm1637.init();
pinMode (10, OUTPUT);
pinMode (11, OUTPUT);
pinMode (12, OUTPUT);
pinMode(coderCLK, INPUT);
pinMode(coderDT, INPUT);
pinMode (coderSW, INPUT);
Serial.begin (9600);
}
void loop() {
coder();
ListDisp[0] =(encoderPosCount / 1000) % 10;
ListDisp[1] =(encoderPosCount / 100) % 10;
ListDisp[2] =(encoderPosCount / 10) % 10;
ListDisp[3] =(encoderPosCount / 1) % 10;
tm1637.display(0, ListDisp[0]);
tm1637.display(1, ListDisp[1]);
tm1637.display(2, ListDisp[2]);
tm1637.display(3, ListDisp[3]);
}
void coder() {
1 val = val * 10 + digitalRead(coderCLK);
2 val = val * 10 + digitalRead(coderDT);
3 if (val == 1110) encoderPosCount–;
4 if (val == 1101) encoderPosCount++;
//digitalWrite(10, val / 1000);
//digitalWrite(11, val / 10);
//digitalWrite(12, val % 10);
//if (val / 100 != val % 100) { Serial.print(val); //Serial.print(" "); }
5 val = val % 100;
}
**

插入链接与图片

链接: link.

图片: # 最简化编码器计数程序( 有效5行,验证于arduino )_第1张图片

你可能感兴趣的:(芯片编程)