Клавиатура 4х4 для Arduino Uno

Подключение клавиатуры к ардуино

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

Клавиатура 4×4 состоит из 4 строк и 4 столбцов. Переключатели размещаются между строками и столбцами.

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

Для получения дополнительной информации о клавиатуре и о том, как ее использовать, обратитесь к статье Клавиатура 4×4 в разделе Датчики и модули.

Схема подключение клавиатуры 4×4 к Arduino UNO

Схема подключения матричной клавиатуры 4x4 к Arduino UNO
Рисунок 1. Схема подключения матричной клавиатуры 4×4 к Arduino UNO

Для примера напишем программу, которая будет производить чтение клавиши, нажатой на клавиатуре 4×4, и ее отображение на последовательном терминале Arduino.

Здесь мы будем использовать библиотеку Keypad Марка Стэнли и Александра Бревига.

Загрузите эту библиотеку отсюда.

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

Вы можете найти больше информации о библиотеке Keypad и о том, как работать с этой библиотеку непосредственно в Arduino IDE здесь.

После добавления библиотеки в IDE Arduino, откройте IDE и откройте пример CustomKeypad из добавленной библиотеки.

ВНИМАНИЕ


В примере скетча Custom Keypad, включенного в библиотеку Keypad, цифровые контакты 0 и 1 используются для соединения строк. Это приведет к тому, что эти строки не будут работать для некоторых клавишей клавиатуры.

Плата Arduino UNO имеет цифровые контакты 0 и 1, подключенные к контактам Tx и Rx, которые используются для последовательной связи. Поскольку скетч использует последовательную связь для отображения нажатия клавиши на последовательном терминале, это приведет к ошибочному поведению.

Чтобы избежать этого, используйте контакты, отличные от контактов 0 и 1. Вы можете обратиться к приведенному ниже скетчу, чтобы получить представление о том, как это сделать.

Примечание


byte rowPins[ROWS] = {R1, R2, R3, R4}; /* подключаемся к распиновке ряда клавиатуры */
byte colPins[COLS] = {C1, C2, C3, C4}; /* подключаемся к распиновке колонки клавиатуры */

Если вы не подключите контакты в соответствии с этой функцией, идентификация нажатия клавиши не даст результатов в соответствии с определенной вами клавиатурой.

Пример скетча клавиатуры 4×4

#include <Keypad.h>

const byte ROWS = 4; /* 4 ряда */
const byte COLS = 4; /* 4 столбца */
/* Определение символов на кнопках клавиатуры */
char hexaKeys[ROWS][COLS] = {
  {'0','1','2','3'},
  {'4','5','6','7'},
  {'8','9','A','B'},
  {'C','D','E','F'}
};
byte rowPins[ROWS] = {10, 11, 12, 13}; /* Контакты, подключенные к строкам клавиатуры */
byte colPins[COLS] = {6, 7, 8, 9};     /* Контакты, подключенные к столбцам клавиатуры */

/* Инициализация экземпляра класса Keypad */
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 

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

void loop(){
  char customKey = customKeypad.getKey();

  if (customKey){
Serial.println(customKey);
  }
}
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии