цифровая электроника
вычислительная техника
встраиваемые системы

 

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

Автор: Mike(admin) от 17-07-2017, 20:15

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


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


Матричная клавиатура

В этом обучающем проекте будет показано, как подключить 12-кнопочную матричную клавиатуру к Arduino и запрограммировать плату для работы с ней.


Мембранные клавиатуры являются экономичным решением для многих приложений. Они довольно тонкие и могут легко монтироваться там, где они нужны. Клавиатура с 12 кнопками имеет три столбца и четыре ряда. При нажатии этой кнопки один из выходов строки будет выведен на один из выходов столбца. Из этой информации Arduino может определить, какая кнопка была нажата. Например, при нажатии клавиши 1 столбец 1 и строка 1 замыкаются. Arduino обнаружит это, и в программе будет индицирована цифра 1. Порядок расположения строк и столбцов внутри клавиатуры показан на рисунке ниже.


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

В данном случае воспользуемся платой Arduino Mega 2560, подключим к ее выводам с 1 по 7 линии матричной клавиатуры 3x4 и будем выводить получаемые с нее данные в последовательный порт. Схема подключения платы Arduino Mega 2560 и матричной клавиатуры показана ниже.


Arduino и матричная клавиатура: схема подключения

Код (скетч) взаимодействия Arduino и матричной клавиатуры представлен далее.



#include "Keypad.h"

const byte Rows= 4; // число строк 4
const byte Cols= 3; // число столбцов 3

// расположение цифр и символов в матрице:

char keymap[Rows][Cols]=
{
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};

// подключение к линиям Arduino:

byte rPins[Rows]= {A6,A5,A4,A3}; // строки с 0 по 3
byte cPins[Cols]= {A2,A1,A0}; // столбцы с 0 по 2

// инициализация класса Keypad
Keypad kpd= Keypad(makeKeymap(keymap), rPins, cPins, Rows, Cols);

void setup()
{
     Serial.begin(9600);  // включаем последовательный монитор
}

// если клавиша нажата, ее номер сохраняется в переменной keypressed
// если номер клавиши не равен NO_KEY, тогда он выводится в последовательный монитор
void loop()
{
     char keypressed = kpd.getKey();
     if (keypressed != NO_KEY)
     { 
          Serial.println(keypressed);
     }
}

Это очень простой пример, но он наглядно демонстрирует, насколько легко можно подключить клавиатуру к вашему проекту и довольно эффективно ее использовать. Вы можете использовать этот тип ввода для многих разных проектов, в том числе для ввода пароля, ввода задания ШИМ-сигнала, ввода времени срабатывания таймера или будильника.




© digitrode.ru


Теги: Arduino, клавиатура



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

Комментарии:

Оставить комментарий