Skip to contentSkip to main navigation Skip to footer

Arduino и мембранная клавиатура

Описание


В наборе GyverKIT можно найти мембранную клавиатуру 4х4 кнопки. В продаже существует также версия 3х4:

Подключение


Клавиатура подключается очень просто: к любым цифровым пинам платы:

Библиотеки


Для работы с клавиатурой можно использовать:

  • Библиотеку Keypad, устанавливается вручную или через менеджер библиотек по поиску Keypad
  • Библиотеку SimpleKeypad, устанавливается вручную или через менеджер библиотек по поиску SimpleKeypad. Основана на Keypad, но имеет меньше возможностей, быстрее работает и занимает меньше памяти. Работа с ней практически не отличается от Keypad

Примеры


“Минимальный” пример с библиотекой SimpleKeypad:

// размеры клавиатуры
#define KP_ROWS 4
#define KP_COLS 4

// пины подключения (по порядку штекера)
byte colPins[KP_COLS] = {7, 6, 5, 4};
byte rowPins[KP_ROWS] = {11, 10, 9, 8};

// массив имён кнопок
char keys[KP_ROWS][KP_COLS] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};

// подключаем либу
#include <SimpleKeypad.h>

// создаём клавиатуру
SimpleKeypad pad((char*)keys, rowPins, colPins, KP_ROWS, KP_COLS);

void setup() {
  Serial.begin(9600);
}

void loop() {
  // получить текущую нажатую клавишу
  // вернёт 0 символ если ничего не нажато
  char key = pad.getKey();

  // если кнопка нажата (не 0 символ)
  if (key) {
    // выводим в порт
    Serial.println(key);

    // можно разобрать через
    // switch (key) {
    // case '1':
    // ...
  }
}

Домашнее задание


  • Сравнить вес в памяти МК минимального примера для библиотек Keypad и SimpleKeypad (примеры будут отличаться только строкой создания объекта клавиатуры)

Полезный пример?

Подписаться
Уведомить о
7 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии