УМНАЯ-ЭЛЕКТРОНИКА.РФУМНАЯ-ЭЛЕКТРОНИКА.РФ

 

Как купить

Скидки

Контакты

Оплата

Новости 

Разработка 

Вакансии

Доставка

[82m680] Модуль клавиатуры мембранной 16-клавишной (4х4)

161мм х 70мм х 2,54мм, Вес: 6.7г.
120.00 Р
14 дн.
1274
1 шт.
+
Если вам необходимо больше товара, то можно привезти его на заказ.
Тел +7 987 254-00-07 (+Whatsapp)
Стоимость и сроки доставки:

Наиболее популярные клавиатуры для Arduino– 16-ти кнопочные. Они позволяют опрашивать16 кнопок всего лишь 8-ю пинами. Используются обычно в проектах с вводом чисел: калькуляторах, кодовых замках. Наиболее распространены два варианта:

Рис.1

Рис.2

Данная клавиатура(Рис 2.) представляет собой матрицу кнопок, то есть кнопки стоящие на пересечении проводов (в этом случае – дорожек). Схема представлена ниже. Она построена на мембранных кнопках и включает в себя все их достоинства и недостатки (мягкость, тонкий корпус). Аналог (Рис 1.) можно найти по ссылке: http://umnaya-elektronika.ru/market/5/modul_klavat... .

Рис.3

Алгоритм работы с такой матрицей следующий:

  1. Назначаем пины 5-8 на выход, а 1-4 на вход, создаем двухмерный массив типа char и вносим в него символы или числа, соответствующие нашим кнопкам.
  2. Подаем на 5-й пин логический 0, записываем его в переменную, на 6,7,8 – логическую 1
  3. Считываем сигнал с 1-го пина, если 0, то записываем его в переменную, если 1, то перебираем 2,3и 4 пины с тем же условием.

Так мы выясним, нажата ли какая-нибудь кнопка в 1-ом столбце. 0 на 1-ом пине соответствует нажатая кнопка 1-го столбца 1-ой строки, 0 на 2-ом – нажатая кнопка 1-го столбца 2-ой строки и т.д.

  • Повторяем операции 2) и 3) для 6,7 и 8 пинов
  • В результате получим координаты кнопки: 1-я переменная хранит номер столбца, 2-я переменная хранит номер строки. Записываем эти переменные в массив как аргументы и получаем символ или число соответствующее нажатой кнопке.

ПРИМЕР ПРОГРАММЫ:

/* @file CustomKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates changing the keypad size and key values.
|| #
*/
#include <keypad.h>
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad 9, 8, 7, 6
//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 
void setup(){
  Serial.begin(9600);
}
  
void loop(){
  char customKey = customKeypad.getKey();
  
  if (customKey){
    Serial.println(customKey);
  }
}</keypad.h>

У данной библиотеки есть один подводный камень. В ней по умолчанию стоит ограничение в 10 строк и 10 столбцов. Это ограничит вашу матрицу размером 10х10 кнопок. Но если вам все же нужно подключить матрицу большего размера, то особо отчаянные могут в коде библиотеки найти это ограничивающее значение (оно устанавливается как #define) и изменить его на любое им угодное.


Ссылки:


http://mypractic.ru/urok-18-podklyuchenie-matricy-...


https://elekt.kz/arduino/modules-and-sensors/the-c...


https://lesson.iarduino.ru/page/urok-13-podklyuche...













Габариты (Д х Ш х В):
161мм х 70мм х 2,54мм
Вес:
6.7г.

Сообщения не найдены

Написать отзыв

С этим товаром также покупают: С этим товаром также покупают: