#define USE_BUTTON
#define USE_ENCODER
// эта часть отвечает за кнопки
#define BTN_L_PIN 3
#define BTN_R_PIN 9
#include "GyverButton.h"
GButton Btn_L(BTN_L_PIN, HIGH_PULL);
GButton Btn_R(BTN_R_PIN , HIGH_PULL);
// эта часть отвечает за поворот энкодера
#define CLK 4
#define DT 5
#include "GyverEncoder.h"
Encoder enc1(CLK, DT);
uint8_t per = 0;
uint8_t old_per = 1;
void setup() {
Serial.begin(115200);
// настройка энкодера
enc1.setType(TYPE2);
// настройка кнопок
Btn_L.setStepTimeout(100);
Btn_R.setStepTimeout(100);
}
void loop() {
// изменение переменной энкодером
enc1.tick();
if (enc1.isRight()) per++;
if (enc1.isLeft()) per--;
// изменение переменной кнопками
Btn_R.tick();
Btn_L.tick();
if (Btn_R.isClick() || Btn_R.isStep()) per++;
if (Btn_L.isClick() || Btn_L.isStep()) per--;
// общая для всех типпо изменения переменной обработка результатов
if (old_per != per)
{
old_per = per;
Serial.println(per);
}
}