#define led_SW 25
#define SW 13
#define DT 14
#define CLK 15
// Esse projeto aqui é pra leitura do Decoder físico que eu tenho,
// um HW-040, aí adapta pro código principal das 10 perguntas.
void setup() {
Serial.begin(9600);
pinMode(SW, INPUT_PULLUP);
pinMode(led_SW, OUTPUT);
pinMode(CLK, INPUT);
pinMode(DT, INPUT);
}
int lastCLK = digitalRead(CLK); // Pois o CLK sempre começa HIGH
int count = 1;
int newCLK, newSW, newDT;
void loop() {
digitalWrite(led_SW, !digitalRead(SW)); // Ele liga o LED se o
// botão do Encoder estiver apertado
newCLK = digitalRead(CLK);
newDT = digitalRead(DT);
if (newCLK != lastCLK) { // Aqui ele só detecta quando ocorre mudança
lastCLK = newCLK;
if (newCLK != newDT) {
Serial.println("Horário!");
count++;
} else {
Serial.println("Anti-horário!");
count--;
}
Serial.println(count); // Irá mostrar de 1 a 20, ative para debug*/
if (count < 1) count = count + 20;
if (count > 20) count = 1;
} // O Encoder HW-040 tem 20 cliques por volta, +- 18 graus por
} // clique, assim eu consigo uma lista de 20 caracteres