Библиотека Keypad для подключения клавиатуры 4 на 4

Скачать библиотеку для работы с клавиатурой 4 на 4 можно по ссылке с нашего сайта. 

Как установить библиотеку arduino вы можете прочитать здесь.

Для того что бы воспользоваться установленной библиотекой в начале скетча пропишите следующую директиву:

#include <Keypad.h>

Далее необходимо воспользоваться конструктором библиотеки:

Keypad(makeKeymap(userKeymap), row[], col[], rows, cols)
const byte rows = 4; //четыре строки
const byte cols = 3; //три столбца
char keys[rows][cols] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'#','0','*'}
};
byte rowPins[rows] = {5, 4, 3, 2}; //пины подключенных строк клавиатуры
byte colPins[cols] = {8, 7, 6}; //пины подключенных столбцов клавиатуры
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, rows, cols );

Данный пример создает экземпляр класса Keypad, который работает с клавиатурой 4 на 4, которая подключена к контактам 5, 4, 3, 2 в качестве контактов строки и 8, 7, 6 в качестве контактов столбца. Данная клавиатура состоит из 4 строк и 3 столбцов, что дает 12 клавиш.

Описание функций библиотеки

void begin(makeKeymap(userKeymap))

Данная функция инициализирует внутреннюю карту ключей (клавиш), переданную массивом userKeymap.

[См. ФайлПримерыKeypadCustomKeypad]

char waitForKey()

Эта функция в бесконечном цикле ждет нажатия какой либо клавиши.

Внимание! Во время использования данной функции, весь остальной пользовательский код блокируется до момента нажатия какой либо клавиши. Простыми словами, в программе перестанут мигать светодиоды, обновление экрана также будет приостановлено. Только прерывания будут работать в штатном режиме.

char getKey()

Возвращает нажатую клавишу, если она есть. Эта функция не блокируется.

KeyState getState()

Возвращает текущее состояние любого из ключей. Четыре состояния: IDLE, PRESSED, RELEASED и HOLD.

boolean keyStateChanged()

Новая функция в версии 2.0: Позволяет узнать, когда ключ изменился из одного состояния в другое. Например, вместо того, чтобы просто проверять каждую клавишу, вы можете проверить ее, когда она была нажата.

setHoldTime(unsigned int time)

Устанавливает количество миллисекунд, которые необходимо удерживать кнопку в нажатом состоянии, чтобы состояние изменилось на HOLD.

setDebounceTime(unsigned int time)

Устанавливает количество миллисекунд, в течение которых клавиатура будет ждать, пока не примет следующее нажатие клавиши. Это метод устранения дребезга с «временной задержкой».

addEventListener(keypadEvent)

Инициирует событие (вызов переданной функции keypadEvent), если нажата кнопка на клавиатуре. Вы можете загрузить пример в Arduino IDE.

[См. ФайлПримерыKeypadKeypadEvent]

Часто задаваемые вопросы

Как использовать больше одной  клавиатуры?

Библиотека клавиатуры это класс. Поэтому, чтобы использовать в приложении больше одной клавиатуры, вы должны создать экземпляр класса для каждой из них, указав для каждого экземпляра контакты к которым подключена вторая клавиатура.

Как использовать функцию setDebounceTime(unsigned int time)?

В Arduino IDE откройте ФайлПримерыKeypadDynamicKeypad, найдите setup() и там вы увидите:

void setup()  {
  Serial.begin(9600);
  digitalWrite(ledPin, HIGH);            // Включаем светодиод.
  keypad.addEventListener(keypadEvent);  // Добавляем событие
  keypad.setHoldTime(500);               // По умолчанию 1000 мс
  keypad.setDebounceTime(250);           // По умолчанию 50 мс
}

Этот пример показывает, что время проверки дребезга дает возможность нажимать одну клавишу каждые 250 миллисекунд. Если в течение этого промежутка времени пользователь нажимает несколько раз клавишу, то эти нажатия просто игнорируются.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии