Svinkovod.ru

Бытовая техника
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Arduino для начинающих. Урок 10. Подключение матричной клавиатуры и интересные схемы

Arduino для начинающих. Урок 10. Подключение матричной клавиатуры и интересные схемы

Конструкторы для обучения детей робототехнике

Продолжаем серию уроков «Arduino для начинающих«. Сегодня подключаем матричную клавиатуру к плате Arduino, а также рассматриваем интересные схемы с ней. Сделать такую клавиатуру можно и самому из кнопок и печатной платы. В статье видео-инструкция, листинги программ, схемы подключения и необходимые компоненты.

Подключение матричной клавиатуры к ардуино

Большая часть текста содержит объяснение программного кода, его можно скачать здесь либо посмотреть видео под статьей.

Сделать такую клавиатуру можно и самому. Для этого понадобится печатная плата, 12 или 16 обычных кнопок и соединительные провода. Я же буду использовать готовую.

Матричная клавиатура для Arduino

Матричная клавиатура для Arduino

Для чего нужна матричная клавиатура?

Для примера возьмем обычную кнопку. Как вы знаете, это простейшее электромеханическое устройство. Чтобы подключить ее к плате, нужно использовать стягивающий резистор, а также задействовать по одному контакту питания и «земли». Нажатием такой кнопки можно выполнить определенное действие, например можно управлять светодиодом, различными приводами, механизмами и так далее. А что, если нам необходимо подключить несколько кнопок? Тогда придется задействовать больше контактов и большее число проводов, да и без макетной платы уже не обойтись, плюс еще резисторы придется использовать в большем количестве.

Для этого и придумали такую клавиатуру, чтобы упростить подключение большего числа кнопок. Такие устройства встречаются везде — в клавиатурах компьютеров, калькуляторах и так далее.

Схема подключения матричной клавиатуры к Arduino

Подключать ее к плате следует 8 выводами, каждый из них считывает значения с определенных строк и столбцов. Подключать их следует к выводам на панели Digital. Я подключу, например, к выводам от 2 до 9 включительно. Нулевой и первый трогать не желательно, поскольку они предназначены для UART интерфейса (например, для подключения блютуз-модуля). Рациональнее оставить их свободными.

Схема подключения матричной клавиатуры к Arduino

Схема подключения матричной клавиатуры к Arduino

Так выглядит самая простая схема с использованием клавиатуры. Для более удобной работы с ней была написана библиотека Кейпад. Скачать ее, а также другие скетчи можно здесь.

После того, как вы установили в библиотеку, можно зайти в Ардуино IDE (программа с сайта Arduino) и посмотреть примеры скетчей.

Возьмем самый простой скетч для ознакомления. Он позволяет считывать значение с клавиатуры при нажатии определенной клавиши и выводить их в порт. В данном случае это монитор порта на компьютере.

#include <Keypad.h> // подключаем нашу библиотеку
const byte ROWS = 4; //число строк у нашей клавиатуры
const byte COLS = 4; //число столбцов у нашей клавиатуры
char hexaKeys[ROWS][COLS] = <
<'1','4','7','*'>, // здесь мы располагаем названия наших клавиш, как на клавиатуре,для удобства пользования
<'2','5','8','0'>,
<'3','6','9','#'>,
<'A','B','C','D'>
>;
byte rowPins[ROWS] = <5, 4, 3, 2>; //к каким выводам подключаем управление строками
byte colPins[COLS] = <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);
>
>

Читайте так же:
Можно ли играть на зарядке на ноутбуке

Скетч очень простой. Стоит отметить первые строчки кода. Сначала подключаем библиотеку, затем указываем сколько строк и столбцов у клавиатуры, а потом нужно правильно расположить названия клавиш, чтобы было удобнее работать.

Если это сделать неправильно, то, например, при нажатии цифры 4, в порт выйдет цифра 6 или любой другой символ. Это можно определить опытным путем и расположить символы, как они расположены на клавиатуре.

Далее нужно указать к каким выводам на плате подключаем управление строками и столбцами.

В функции void setup указываем скорость последовательного соединения с монитором порта 9600 бод. Функция нужна только для подачи питания на модули. В функции Void Loop прописываем условие. Переменная Char используется для хранения только одного символа, например, 1, А или 5, что подходит к ситуации. Если нажатие зафиксировано, то происходит вывод символа в монитор порта с помощью функции Serial Print. В скобках нужно указывать, какую переменную выводим в порт. Если все сделано верно, в мониторе порта получим символ, на который нажимали. Не забудьте в мониторе порта внизу справа указать скорость передачи данных такую же, как в скетче.

Схема с дисплеем и матричной клавиатурой

Давайте выведем данные на дисплей.

Схема подключения сопряженного с модулем I2C дисплея к Arduino

Схема подключения сопряженного с модулем I2C дисплея к Arduino

Я использую дисплей, сопряженный с модулем I2C, который упрощает подключение. Для работы с дисплеем с шиной I2C необходимо установить еще одну библиотеку. Скачать ее можно здесь.

Далее нужно указать размерность дисплея. Используемый в примере дисплей вмещает по 16 символов в каждой из 2-ух строк, это я и указываю. В функции Void Setup нужно подать питание на дисплей и включить подсветку. Делается это с помощью двух функций: lcd.begin и lcd.backlight.

#include <Keypad.h>// подключаем нашу библиотеку
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const byte ROWS = 4; //число строк у нашей клавиатуры
const byte COLS = 4; //число столбцов у нашей клавиатуры
char hexaKeys[ROWS][COLS] = <
<'S','4','7','*'>, // здесь мы располагаем названия наших клавиш, как на клавиатуре,для удобства пользования
<'O','5','8','0'>,
<'S','6','9','#'>,
<'I','B','C','D'>
>;
byte rowPins[ROWS] = <5, 4, 3, 2>; //к каким выводам подключаем управление строками
byte colPins[COLS] = <9, 8, 7, 6>; //к каким выводам подключаем управление столбцами
//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup() <
Serial.begin(9600);
lcd.begin(); // Инициализируем экран
lcd.backlight();
>
void loop() <
char customKey = customKeypad.getKey();
if (customKey) <
Serial.println(customKey);
lcd.setCursor(1,4); //устанавливаем курсор
lcd.print(customKey);
>
>

Читайте так же:
Идентификатор устройства xbox one

В функции Voil Loop нужно в самом условии прописать строчку lcd.print для вывода данных на дисплей. И еще нужно предварительно установить положение курсора. В скобках идут 2 цифры: первая — это номер символа, а вторая — номер строки. Нужно помнить, что у этого дисплея отсчет строк и столбцов начинается не с единицы, а с нуля. То есть здесь имеются строчки под номерами 0 и 1, а не 1 и 2, как может показаться сначала. Затем загрузим код в плату и посмотрим, что будет.

Так как дисплей работает по интерфейсу I2C, подключаем к аналоговым выводам. Выходы SDA и SCL соответственно подключаем к А4 и А5, а остальные два — это уже питание и «земля».

Как видим, нажимая на любой символ, видим его отображение на дисплее.

Подключение дисплея и матричной клавиатуры к Arduino

Подключение дисплея и матричной клавиатуры к Arduino

Можно заметить, если вводить символы дальше, то каждый предыдущий будет стираться, а на его месте появляться новый. Поэтому, если вы хотите вводить символы подряд, то просто удалите строчку, где указано положение курсора.

Чтобы стереть строчку, вспомним калькулятор. Когда нужно было удалить значение, мы нажимали на кнопку сброса. Нажмем на такую кнопку в плате и можем заново набирать символы.

Подключение клавиатуры к Arduino и управляющее действие

Последняя схема в уроке — выполнение заданного действия при нажатии определенной клавиши. Это основная цель подключения матричной клавиатуры к Arduino. По этой теме будут две отдельные статьи и видео, описывающие более сложные и интересные схемы. А сейчас знакомимся с этим модулем и запоминаем построение кода с его использованием.

Попробуем при нажатии определенной клавиши включать или выключать светодиод. Добавляем его в схему.

Подключение клавиатуры к Arduino и управляющее действие (управление светодиодом)

Я буду использовать макетную плату и резистор (желательно использовать от 150 до 220 Ом). Двумя перемычками замкну схему, подключив их к пинам питания и земли на плате Ардуино.

Схема будет работать так: при нажатии на 1 включается светодиод, при нажатии на 2 — выключается.

Светодиод в примере подключен к пину 8 на плате Ардуино.

#include <Keypad.h>
const byte ROWS = 4; // Four rows
const byte COLS = 4; // Three columns
char keys[ROWS][COLS] = < // Define the Keymap
<'1','4','7','*'>, // здесь мы располагаем названия наших клавиш, как на клавиатуре,для удобства пользования
<'2','5','8','0'>,
<'3','6','9','#'>,
<'A','B','C','D'>
>;
byte rowPins[ROWS] = < 5, 4, 3, 2 >;// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
byte colPins[COLS] = < 9, 8, 7 ,6>; // Connect keypad COL0, COL1 and COL2 to these Arduino pins.
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );// Create the Keypad
#define ledpin 8
void setup()
<
pinMode(ledpin,OUTPUT);
Serial.begin(9600);
>
void loop()
<
char key = kpd.getKey();
if(key) // Check for a valid key.
<
switch (key)
<
case ‘1’:
digitalWrite(ledpin, HIGH);
break;
case ‘2’:
digitalWrite(ledpin, LOW);
break;
>
>
>

Читайте так же:
Зачем нужен процессор в компьютере

Давайте разберем скетч.

Возьмем первый скетч урока и просто его дополним. В начале с помощью полезной функции Define присвоим название подключенному к пину 8 светодиоду ledpin. В функции Void setup указываем сигнал со светодиода как выход.

Подключение клавиатуры к Arduino и управление светодиодом

Подключение клавиатуры к Arduino и управление светодиодом

Если бы не библиотека Кейпад для клавиатуры, пришлось бы прописывать то же самое для 8 пинов, с которыми связана клавиатура. В функции void loop условие. Нажатие определенной клавиши «приравнивается» к значению переменной key. Оператор Switch сравнивает значения переменной key и «дает» определенные команды в зависимости от этого значения. Состоит он из двух вспомогательных операторов Case и Break. Проще говоря, если будет найдено значение переменной, равное 1 , то будет выполняться действие. Оператор break служит командой выхода из оператора Case.

Соответственно при нажатии на 1 будет выполняться максимальная подача напряжения на светодиод и он будет гореть. При нажатии на 2 он гореть не будет. Это указывается в функции Digitat write, где в скобках задается название переменной и «указание» ей. Можно таким образом написать определенные команды для каждой кнопки и управлять большим количеством светодиодов или создать команду для включения всех светодиодов сразу.

Смотрите также:

Посты по урокам:

  1. Первый урок: Светодиод.
  2. Второй урок: Кнопка.
  3. Третий урок: Потенциометр.
  4. Четвертый урок: Сервопривод.
  5. Пятый урок: Трехцветный светодиод.
  6. Шестой урок: Пьезоэлемент.
  7. Седьмой урок: Фоторезистор.
  8. Восьмой урок: Датчик движения (PIR) на Arduino. Автоматическая отправка E-mail.
  9. Девятый урок: Подключение датчика температуры и влажности DHT.

Все посты сайта «Занимательная робототехника» по тегу Arduino.

Не знаете, где купить Arduino? Все используемые в уроке комплектующие входят в большинство готовых комплектов Arduino, их также можно приобрести по отдельности. Подробная инструкция по выбору здесь. Низкие цены, спецпредложения и бесплатная доставка на сайтах AliExpress и DealExtreme. Если нет времени ждать посылку из Китая — рекомендуем интернет-магазин Амперка. Низкие цены и быструю доставку предлагает интернет-магазин ROBstore. Смотри также список магазинов.

Подключение матричной мембранной клавиатуры к Arduino

В этой статье расскажу как работает матричная мембранная клавиатуру и приведу простой пример подключения клавиатуры к Arduino с отображением нажатий клавиш на последовательном мониторе.

Технические параметры:

► Разъём: PLS-8;
► Тип шлейфа: плоский, гибкий, 8 pin;
► Длина шлейфа: 75 мм;
► Размер: 77×69×2 мм;
► Масса: 7 г.

Читайте так же:
Замена пасты на процессоре компьютера
Обзор матричной мембранной клавиатуры

В статье пойдет речь о матричной мембранной клавиатуре на 4×4. Так же существуют клавиатуры 4 × 3, 4 × 1 и другие, в не зависимости от размера, все они работают одинаково. Как видно из фото, на передней части располагается сами кнопки, а на обратной стороне приклеена липкая основа, которая позволяет приклеить клавиатуру к любой поверхности.

Принцип работы матричная клавиатура

В матричной мембранной клавиатуре 4 x 4 (4 столбца и 4 строки) содержится 16 кнопок, под каждой кнопкой находится мембранная переключатель. Все эти кнопки соединены с друг другом, образуя матрицу 4 × 4, это позволило уменьшит количество используемых выводов для подключения к микроконтроллеры (Arduino) с 17 контактов до 8 контактов.

Принцип работы очень простой, при нажатие кнопки замыкается контакт между столбцом и строкой, между ними начинает течь ток. Например, при нажатии клавиши «4» происходит короткое замыкание столбца 1 и строки 2. Схема клавиатуры 4 x 4 показана на рисунке ниже.

Подключение матричной мембранной клавиатура к Arduino

Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Матричная мембранная клавиатура 4х4, 16 кнопок x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-F x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.

Подключение:
Теперь приступим к сборке схемы, подключим контакта 1 клавиатуры к цифровому контакту 9 на Arduino. Далее необходимо подключить все остальные контакты 2 с 8 и так далее.

Установка библиотек:
В данном примере используем одну библиотеку «Keypad.h» скачать ее можно с «Менеджер библиотек» или в конце статьи.

В строке поиска вводим «Keypad» находим библиотеку «Keypad by Mark Stanley» и устанавливаем ее.

Программа:
Пример простой, копируем или скачиваем и загружаем в Arduno.

Ардуино: подключение матричной клавиатуры

В мире электроники клавиатурой называют устройство, состоящее из отдельных кнопок, которое позволяет вводить информацию в компьютер или в иной электронный прибор.

Клавиатуры имеют массу вариантов исполнения. На старых персональных компьютерах использовались клавиатуры с механическими клавишами, которые имели большой ход и были почти также удобны как клавиши на старых печатных машинках. Последние 15-20 лет широко применяются мембранные клавиатуры, которые проще и дешевле в изготовлении. Именно такую клавиатуру мы будем подключать к Ардуино.

Популярная в Ардуино проектах матричная мембранная клавиатура имеет 12 или 16 кнопок. С нижней части клавиатуры выходит шлейф, заканчивающийся dupont розеткой.

Устройство матричной клавиатуры

Матричная клавиатура состоит из кнопок, образующих матрицу mxn, т.е. таблицу, где m — количество строк, а n — количество столбцов. Для урока мы воспользуемся клавиатурой 4х3. Если мы рассмотрим её шлейф, то увидим, что он состоит из 7 дорожек. Дорожки с номерами 1-4 (обозначим их Row1-Row4) — это строки матрицы с первой по четвёртую, а дорожки с номерами 5-7 (Col1-Col3) — столбцы с первого по третий.

Читайте так же:
Запустить с графическим процессором nvidia нет пункта

Каждая кнопка — это область пересечения токопроводящих дорожек. При нажатии на участок, обозначающий кнопку, происходит соединению дорожек и замыкание одного из выводов строк 1-4 с одним из выводов столбцов 1-3.

Подключение матричной клавиатуры к Ардуино

Для отображения вводимой с клавиатуры информации мы воспользуемся жк дисплеем c I2C интерфейсом. Благодаря этому интерфейсу, схема не будет перегружена проводами. Подробно о дисплеях для Ардуино рассказывается в одном из предыдущих уроков — Ардуино: вывод текста на ЖК дисплей.

Подключение дисплея с шиной I2C осуществляется по следующей схеме:

ЖК дисплейGNDVCCSDASCL
Ардуино УноGND+5VA4A5

Матричная клавиатура имеет 7 выводов, которые подключаются к любым цифровым выводам. В нашем примере мы задействуем выводы 2-8. Выводы 0 и 1, как правило, не используют при подключении клавиатуры, поскольку они предназначены для UART интерфейса.

Схема подключения клавиатуры к Ардуино:

Матричная клавиатураRow1Row2Row3Row4Col1Col2Col3
Ардуино Уно8765432

Внешний вид макета:

Программа:

Чтобы работать с клавиатурой можно воспользоваться библиотекой Keypad.

В этой программе также используются библиотеки <Wire.h> и <LiquidCrystal_I2C.h>, т.к. для вывода информации мы воспользовались LCD-дисплеем с интерфейсом I2C.

Кодовый замок

Используя макет, который мы собрали, можно сделать устройство, позволяющее вводить пароль с клавиатуры. Для примера напишем простой код, работающий с паролем из четырёх цифр.

Мембранная матричная клавиатура, 16 клавиш, 4×4, модуль клавиатуры, переключатель для Arduino UNO R3 Nano FZ0840

16Keys 4X4 Membrane Matrix Keypad Keyboard Module Array Switch for Arduino UNO R3 Nano FZ0840

Бесплатная доставка! матричная матрица 4*4/матричная клавиатура, 16 клавиш, мембранная переключатель, клавиатура для arduino 4×4, матричная клавиа.

2 шт. матричная матрица 4x4, 16 клавиш, мембранная клавиатура переключателя клавиатуры для Arduino Raspberry Pi

2 шт. матричная матрица 4×4, 16 клавиш, мембранная клавиатура переключателя клавиатуры для arduino raspberry pi

Матричная клавиатура KJ318 4*4/матричная клавиатура, 16 клавиш, мембранная клавиатура для arduino 4X4, матричная клавиатура, 10 шт.

Матричная клавиатура kj318 4*4/матричная клавиатура, 16 клавиш, мембранная клавиатура для arduino 4×4, матричная клавиатура, 10 шт.

Матричная клавиатура 3 шт./лот 4*4/матричная клавиатура, 16 клавиш, мембранная клавиатура для arduino 4X4, матричная клавиатура

Матричная клавиатура 3 шт./лот 4*4/матричная клавиатура, 16 клавиш, мембранная клавиатура для arduino 4×4, матричная клавиатура

16 клавиш 4x4 мембранная коммутационная клавиатура 4x4 4*4 матричная клавиатура для arduino DIY KIT

16 клавиш 4×4 мембранная коммутационная клавиатура 4×4 4*4 матричная клавиатура для arduino diy kit

16 клавиш I2C клавиатура переключатель клавиатуры 1x4 2x4 3x4 4x4 Матрица матричная клавиатура I2C модуль клавиатуры для arduino

16 клавиш i2c клавиатура переключатель клавиатуры 1×4 2×4 3×4 4×4 матрица матричная клавиатура i2c модуль клавиатуры для arduino

4x4 матричная клавиатура 3x4 модуль клавиатуры мембранная переключатель клавиатуры 4*4 3*4 пластиковый переключатель клавиш для контроллера Arduino

4×4 матричная клавиатура 3×4 модуль клавиатуры мембранная переключатель клавиатуры 4*4 3*4 пластиковый переключатель клавиш для контроллера arduino

Матричная матрица 4*4/матричная клавиатура, 16 клавиш, мембранная переключатель, клавиатура постоянного тока 35 в, 100 мА, 1 Вт для матричной клавиатуры Arduino 4X4

Матричная матрица 4*4/матричная клавиатура, 16 клавиш, мембранная переключатель, клавиатура постоянного тока 35 в, 100 ма, 1 вт для матричной клавиатуры arduino 4×4

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector