Пример 19. Матричная клавиатура
Примеры
ПРИМЕРЫ
- Пример 1. Светодиоды
- Пример 2. Подключение кнопки
- Пример 3. Переключатель
- Пример 4. Активный зуммер
- Пример 5. Пассивный зуммер
- Пример 6. Фоторезистор
- Пример 7. RGB-светодиод
- Пример 8. Семисегментный индикатор и 74HC595N
- Пример 9. Четырехразрядный 7-сегментный индикатор
- Пример 10. Светодиодная матрица
- Пример 11. Светодиодная шкала
- Пример 12. ЖК-дисплей
- Пример 13. Джойстик
- Пример 14. Вольтметр
- Пример 15. Термистор
- Пример 16. Модуль DHT11
- Пример 17. Модуль HC-SR04
- Пример 18. Датчик движения HC-SR501
- Пример 19. Матричная клавиатура
- Пример 20. ИК датчик и пульт
- Пример 21. Модуль часов DS-1302
- Пример 22. RFID-модуль RC522
- Пример 23. Сервопривод
- Пример 24. Модуль реле
- Пример 25. Двигатель постоянного тока
- Пример 26. Шаговый двигатель и драйвер ULN2003
- Пример 27. Драйвер двигателей на L298N
- Пример 28. MP3-плеер DFPlayer Mini
- Пример 29. Датчик уровня воды
- Пример 30. Serial Port
- Пример 31. Симуляция парковки
- Пример 32. Датчик температуры DS18B20
- Пример 33. Bluetooth-модуль HC-06
- Пример 34. Плата расширения с дисплеем и кнопками
- Пример 35. Плата расширения для двигателей на L293D
- Пример 36. Ethernet шилд W5100
- Пример 37. GSM/GPRS шилд SIM900
- Пример 38. GPS модуль Ublox NEO-6M
- Пример 39. Модуль считывания отпечатков пальцев
- Пример 40. Шаговый двигатель NEMA17 и драйвер TB6600
Принцип работы такой клавиатуры достаточно прост. Микроконтроллер поочередно подает логическую единицу на каждый из выводов 4 рядов, а с выводов столбцов наоборот — считывает значения. Если нажать какую-либо из кнопок, то она замкнет вывод ряда и вывод столбца, с которыми связана, в результате чего, на соответствующем выводе столбца появится логическая единица.
Схема матричной клавиатуры:
Например, если нажать кнопку SW7, то она замкнет выводы Row2 и Col3. Нетрудно догадаться, что в таком случае, при подаче на Row2 логической единицы, через кнопку SW7 логическая единица установится и на выводе Col3.
Очевидно, что можно работать и в обратном порядке: подавать напряжение на выводы столбцов, а считывать с выводов рядов.
Описание:
В этом примере с помощью библиотеки Keypad подключим матричную клавиатуру 4×4 к плате Arduino Uno, при нажатии на кнопку в мониторе порта будет отображаться соответствующий символ.
Компоненты:
Схема:
Скетч:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#include <Keypad.h> // подключаем библиотеку Keypad 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] = {6, 7, 8, 9}; // цифровые выводы строк byte colPins[COLS] = {5, 4, 3, 2}; // цифровые выводы столбцов // используем класс библиотеки Keypad customKeypad = Keypad(makeKeymap(hexaKeys), colPins, rowPins, COLS, ROWS); void setup(){ Serial.begin(9600); } void loop(){ // вывод в монитор порта значения кнопки char customKey = customKeypad.getKey(); if (customKey){ Serial.println(customKey); } } |