Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Матричная клавиатура 4х4 ====== ===== Описание ===== Матричная клавиатура на 16 кнопок. Отличается своей малой толщиной (1-2мм) и высокой надежностью в работе. Обратная сторона снабжена клейкой поверхностью. ==== Технические характеристики ==== * Количество кнопок: 16 ==== Физические размеры ==== * Клавиатура (Д х Ш х В): 69 х 78 х 1 мм * Соединение (Д х Ш х В): 89 х 22 х 3 мм ==== Плюсы использования ==== * Простое и недорогое решение * Прост в подключении ==== Минусы использования ==== * Используется много выводов контроллера ===== Примеры подключения и использования ===== **Пример 1:** В примере иллюстрируется подключение модуля к контроллеру и получение данных с кнопки с последующим выводом данных в Serial-порт.(Примеры тестировались на контроллере Smart UNO) ^ Что нужно ^ Кол-во, шт ^ | [[https://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]] | 1 | | [[https://smartelements.ru/collection/moduli/product/matrichnaya-klaviatura-4h4|Матричная клавиатура 4х4]] | 1 | | [[https://smartelements.ru/collection/provoda-i-kabeli/product/nabor-provodov-20-sht-20sm-papa-papa|Провода папа-папа]] | 8 | **Схема подключения:** {{ :главная:модули:matrix_44.jpg |}} **Скетч для загрузки:** <file Arduino> 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); // вернуть высокий уровень на пин } } </file>