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

Описание

Матричная клавиатура на 12 кнопок. Отличается своей малой толщиной (1-2мм) и высокой надежностью в работе. Обратная сторона снабжена клейкой поверхностью.

Технические характеристики

  • Количество кнопок: 12

Физические размеры

  • Клавиатура (Д х Ш х В): 69 х 78 х 1 мм
  • Соединение (Д х Ш х В): 89 х 19 х 3 мм

Плюсы использования

  • Простое и недорогое решение
  • Прост в подключении

Минусы использования

  • Используется много выводов контроллера

Примеры подключения и использования

Пример 1: В примере иллюстрируется подключение модуля к контроллеру и получение данных с кнопки с последующим выводом данных в Serial-порт.(Примеры тестировались на контроллере Smart UNO)

Схема подключения:

Скетч для загрузки:

int columnPins[3] = {8, 9, 10}; // пины выхода (колонки) 
int rowPins[4] {4, 5, 6, 7}; // пины входа (строки)
 
//массив кнопок клавиатуры
const char value[4][3]
{ {'1', '2', '3'},
  {'4', '5', '6'},
  {'7', '8', '9'},
  {'*', '0', '#'}
  };
 
 
void setup()
{
  //установка пинов выхода на вывод
  for (int i=0; i < 3; 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 <= 3; 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(175);
      }
 
    }
    digitalWrite(columnPins[i - 1], HIGH); // вернуть высокий уровень на пин
  }
}