Матричная клавиатура 4х4
Описание
Матричная клавиатура на 16 кнопок. Отличается своей малой толщиной (1-2мм) и высокой надежностью в работе. Обратная сторона снабжена клейкой поверхностью.
Технические характеристики
- Количество кнопок: 16
Физические размеры
- Клавиатура (Д х Ш х В): 69 х 78 х 1 мм
- Соединение (Д х Ш х В): 89 х 22 х 3 мм
Плюсы использования
- Простое и недорогое решение
- Прост в подключении
Минусы использования
- Используется много выводов контроллера
Примеры подключения и использования
Пример 1: В примере иллюстрируется подключение модуля к контроллеру и получение данных с кнопки с последующим выводом данных в Serial-порт.(Примеры тестировались на контроллере Smart UNO)
Что нужно | Кол-во, шт |
---|---|
Контроллер Smart UNO | 1 |
Матричная клавиатура 4х4 | 1 |
Провода папа-папа | 8 |
Скетч для загрузки:
int columnPins[4] = {8, 9, 10, 11}; // пины выхода (колонки)
int rowPins[4] = { 4, 5, 6, 7}; // пины входа (строки)
//массив кнопок клавиатуры
const char value[4][4]
{ {'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
void setup()
{
//установка пинов выхода на вывод
for (int i=0; i < 4; i++)
{
pinMode (columnPins[i], OUTPUT);
digitalWrite(columnPins[i], HIGH);
}
//установка пинов входа на ввод
for (int j=0; j < 4; j++)
{
pinMode (rowPins[j], INPUT);
digitalWrite(rowPins[j], HIGH);
}
Serial.begin(9600); // инициализация Serial - порта
}
void loop()
{
for (int i = 1; i <= 4; i++) // цикл по столбцам
{
digitalWrite(columnPins[i - 1], LOW); // отправить 0 на пин
for (int j = 1; j <= 4; j++) // цикл по строкам
{
if (digitalRead(rowPins[j - 1]) == LOW) // если принят 0 сигнал на пине
{
//вывод информации номера колонки и строки
Serial.print(i-1);
Serial.print("|");
Serial.print(j-1);
//определение и вывод значения
Serial.print(" value: ");
Serial.println(value[j - 1][i - 1]);
}
}
delay(50); //задержка
digitalWrite(columnPins[i - 1], HIGH); // вернуть высокий уровень на пин
}
}