// управление тремя переменными при помощи энкодера:
// - нащёлкай кнопкой нужную переменную (1, 2 или 3 клика)
// - 1 переменная просто изменяется с постоянным шагом
// - 2 переменная: шаг 1, при зажатой кнопке - шаг 5
// - 3 переменная: шаг 1, при быстром вращении - шаг 5
#include <Arduino.h>
#include <EncButton.h>
EncButton eA(0, 1, A0); // zoom
EncButton eB(4, 5, A1); // pan
EncButton eC(6, 7, A2); // tilt
EncButton eD(8, 9, A3); // int
Button b1(10);
Button b2(11);
Button b3(12);
Button b4(13);
Button b5(A4);
Button b6(A5);
Button b7(2);
Button b8(3);
int eAcount = 0;
int eDcount = 0;
void setup() {
Serial.begin(115200);
}
void loop() {
eA.tick();
eB.tick();
eC.tick();
eD.tick();
b1.tick();
b2.tick();
b3.tick();
b4.tick();
b5.tick();
b6.tick();
b7.tick();
b8.tick();
if (eA.turn()) {
if (eA.dir() == 1) {
Serial.println("06,");
} else {
Serial.println("eA_down");
}
}
if (eB.turn()) {
if (eA.dir() == 1) {
Serial.println("eB_up");
} else {
Serial.println("eB_down");
}
}
if (eC.turn()) {
if (eA.dir() == 1) {
Serial.println("eC_up");
} else {
Serial.println("eC_down");
}
}
if (eD.turn()) {
if (eA.dir() == 1) {
Serial.println("eD_up");
} else {
Serial.println("eD_down");
}
}
if (eA.click()) {
eAcount++;
switch (eAcount) {
case 1:
Serial.println("eA_mod1");
break;
case 2:
Serial.println("eA_mod2");
break;
case 3:
Serial.println("eA_mod3");
eAcount = 0;
break;
}
}
if (eB.click()){
Serial.println("eB_click");
}
if (eC.click()){
Serial.println("eC_click");
}
if (eD.click()) {
eDcount++;
switch (eDcount) {
case 1:
Serial.println("eD_mod1");
break;
case 2:
Serial.println("eD_mod2");
break;
case 3:
Serial.println("eD_mod3");
eDcount = 0;
break;
}
}
if (b1.click()) Serial.println("b1");
if (b2.click()) Serial.println("b2");
if (b3.click()) Serial.println("b3");
if (b4.click()) Serial.println("b4");
if (b5.click()) Serial.println("b5");
if (b6.click()) Serial.println("b6");
if (b7.click()) Serial.println("b7");
if (b8.click()) Serial.println("b8");
}