33 lines
1.6 KiB
C++
33 lines
1.6 KiB
C++
#define CLK 2
|
|
#define DT 3
|
|
#define SW 4
|
|
|
|
#include "GyverEncoder.h"
|
|
Encoder enc1(CLK, DT, SW);
|
|
|
|
int value = 0;
|
|
|
|
void setup() {
|
|
Serial.begin(9600);
|
|
enc1.setType(TYPE1); // тип энкодера TYPE1 одношаговый, TYPE2 двухшаговый. Если ваш энкодер работает странно, смените тип\=
|
|
enc1.setFastTimeout(40); // таймаут на скорость isFastR. По умолч. 50
|
|
}
|
|
|
|
void loop() {
|
|
// обязательная функция отработки. Должна постоянно опрашиваться
|
|
enc1.tick();
|
|
|
|
if (enc1.isRight()) value++; // если был поворот направо, увеличиваем на 1
|
|
if (enc1.isLeft()) value--; // если был поворот налево, уменьшаем на 1
|
|
|
|
if (enc1.isRightH()) value += 5; // если было удержание + поворот направо, увеличиваем на 5
|
|
if (enc1.isLeftH()) value -= 5; // если было удержание + поворот налево, уменьшаем на 5
|
|
|
|
if (enc1.isFastR()) value += 10; // если был быстрый поворот направо, увеличиваем на 10
|
|
if (enc1.isFastL()) value -= 10; // если был быстрый поворот налево, уменьшаем на 10
|
|
|
|
if (enc1.isTurn()) { // если был совершён поворот (индикатор поворота в любую сторону)
|
|
Serial.println(value); // выводим значение при повороте
|
|
}
|
|
}
|