#define ENCODER_CLK 22
#define ENCODER_DT 23
#define ENCODER_BTN 21
#define LED_CW 18
#define LED_CCW 19
#define UP_BTN 14
#define ENTER_BTN 12
#define DOWN_BTN 13
//FAKE
#define FAKE_UP_BTN 5 //5
#define FAKE_ENTER_BTN 17 //17
#define FAKE_DOWN_BTN 4 //4
void setup() {
Serial.begin(115200);
pinMode(ENCODER_CLK, INPUT);
pinMode(ENCODER_DT, INPUT);
pinMode(ENCODER_BTN, INPUT_PULLUP);
pinMode(LED_CW, OUTPUT);
pinMode(LED_CCW, OUTPUT);
pinMode(UP_BTN, INPUT_PULLDOWN);
pinMode(ENTER_BTN, INPUT_PULLDOWN);
pinMode(DOWN_BTN, INPUT_PULLDOWN);
//FAKE
pinMode(FAKE_UP_BTN, OUTPUT);
pinMode(FAKE_ENTER_BTN, OUTPUT);
pinMode(FAKE_DOWN_BTN, OUTPUT);
//FAKE
}
int lastClk = HIGH;
void loop() {
//FAKE ENCODER
int newClk = digitalRead(ENCODER_CLK);
if (newClk != lastClk) {
// Houve uma mudança no pino CLK
lastClk = newClk;
int dtValue = digitalRead(ENCODER_DT);
if (newClk == LOW && dtValue == HIGH) {
Serial.println("FAKE_DOWN_BTN");
digitalWrite(FAKE_DOWN_BTN, HIGH); // turn the LED on (HIGH is the voltage level)
//delay(200); // wait for a 200ms
//digitalWrite(FAKE_DOWN_BTN, LOW);
}
if (newClk == LOW && dtValue == LOW) {
Serial.println("FAKE_UP_BTN");
digitalWrite(FAKE_UP_BTN, HIGH); // turn the LED on (HIGH is the voltage level)
//delay(200); // wait for a 200ms
//digitalWrite(FAKE_UP_BTN, LOW);
}
else {
digitalWrite(FAKE_UP_BTN, LOW);
digitalWrite(FAKE_DOWN_BTN, LOW);
}
}
//FAKE ENCODER
/*
int newClk = digitalRead(ENCODER_CLK);
if (newClk != lastClk) {
// Houve uma mudança no pino CLK
lastClk = newClk;
int dtValue = digitalRead(ENCODER_DT);
if (newClk == LOW && dtValue == HIGH) {
Serial.println("Encoder CW");
digitalWrite(LED_CW, HIGH); // turn the LED on (HIGH is the voltage level)
delay(200); // wait for a 200ms
digitalWrite(LED_CW, LOW);
}
if (newClk == LOW && dtValue == LOW) {
Serial.println("Encoder CCW");
digitalWrite(LED_CCW, HIGH); // turn the LED on (HIGH is the voltage level)
delay(200); // wait for a 200ms
digitalWrite(LED_CCW, LOW);
}
}
*/
//FAKE_ENTER_BTN
if (digitalRead(ENCODER_BTN) == LOW) {
delay(200);
digitalWrite(FAKE_ENTER_BTN, HIGH);
Serial.println("FAKE_ENTER_BTN");
}
else {
digitalWrite(FAKE_ENTER_BTN, LOW);
}
//FAKE_ENTER_BTN
//BTN SETUP
if (digitalRead(UP_BTN) == HIGH) {
delay(200);
Serial.println("UP_BTN");
digitalWrite(LED_CCW, HIGH); // turn the LED on (HIGH is the voltage level)
delay(200); // wait for a 200ms
digitalWrite(LED_CCW, LOW);
}
if (digitalRead(ENTER_BTN) == HIGH) {
delay(200);
Serial.println("ENTER_BTN");
digitalWrite(LED_CW, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(LED_CCW, HIGH);
delay(100); // wait for a 200ms
digitalWrite(LED_CW, LOW);
digitalWrite(LED_CCW, LOW);
}
if (digitalRead(DOWN_BTN) == HIGH) {
delay(200);
Serial.println("DOWN_BTN");
digitalWrite(LED_CW, HIGH); // turn the LED on (HIGH is the voltage level)
delay(200); // wait for a 200ms
digitalWrite(LED_CW, LOW);
}
}