GyverLibs/EncButton

Не понятен пример использования массива кнопок.

Depech100 opened this issue · 1 comments

// объявляем массив кнопок
#define BTN_AMOUNT 5
#include <EncButton2.h>
EncButton2<EB_BTN> btn[BTN_AMOUNT];

void setup() {
Serial.begin(9600);
btn[0].setPins(INPUT_PULLUP, D3);
btn[1].setPins(INPUT_PULLUP, D2);
}

void loop() {
for (int i = 0; i < BTN_AMOUNT; i++) btn[i].tick();
for (int i = 0; i < BTN_AMOUNT; i++) {
if (btn[i].click()) {
Serial.print("click btn: ");
Serial.println(i);
}

}
}

Обьявили 5 кнопок а обьекта создали 2 всего. Что это за массив кнопок он аналоговый или это матричная клавиатура?
Нельзя ли пояснить? могу нарисовать схему помочь если нужно.
Скорее всего такая клавиатура?
keypad-matrix-scheme-1024x504

Обьявили 5 кнопок а обьекта создали 2 всего

Почему же?

define BTN_AMOUNT 5
EncButton2<EB_BTN> btn[BTN_AMOUNT];

Создали массив из 5ти объектов

Что это за массив кнопок он аналоговый или это матричная клавиатура?

Нет и нет, это просто массив объектов одиночных кнопок, что здесь непонятного? Библиотека не работает напрямую ни с аналоговыми, ни с обычными матрицами. Только одиночные кнопки.

Если нужно получить функциональность библиотеки на матричной клавиатуре - берём любую библиотеку для матричных клавиатур (simpleKeypad например), а encbutton работает как виртуальная кнопка, и всё как в примерах