Как подключить клавиатуру к ардуино
Для реализации проекта нам необходимо установить библиотеки:
Сборка:
1) Клавиатуру удобнее всего подключить к Ардуине проводками Папа-Папа.
Контакты на клавиатуре отсчитываются слева на право.
Клавиатура 4*4 | Arduino (uno) |
---|---|
Контакт 1 | pin 11 |
Контакт 2 | pin 10 |
Контакт 3 | pin 9 |
Контакт 4 | pin 8 |
Контакт 5 | pin 7 |
Контакт 6 | pin 6 |
Контакт 7 | pin 5 |
Контакт 8 | pin 4 |
Контакты к которым подключаем клавиатуру, могут быть перенастроены на любые другие цифровые контакты. Настраиваются здесь:
2) Звуковой сигнал будет издаваться с помощью зуммера, его подключаем следующим образом:
Зуммер | Arduino |
---|---|
GND | GND |
IO | pin 3 |
VCC | 5V или 3V |
Контакт Pin3 так же может быть изменен на любой удобный вам цифровой выход. Настраивается здесь:
Скетч:
Теперь, если все подключено и библиотеки установлены, можно приступить к загрузке скетча.
Видео:
В этой статье расскажу как работает матричная мембранная клавиатуру и приведу простой пример подключения клавиатуры к Arduino с отображением нажатий клавиш на последовательном мониторе.
Технические параметры:
► Разъём: PLS-8;
► Тип шлейфа: плоский, гибкий, 8 pin;
► Длина шлейфа: 75 мм;
► Размер: 77×69×2 мм;
► Масса: 7 г.
Обзор матричной мембранной клавиатуры
Принцип работы матричная клавиатура
В матричной мембранной клавиатуре 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.
Во многих проектах появляется необходимость создания возможности ввода данных пользователем. Если вам нужно реализовать большое количество кнопок(относительно), то подключать их по-отдельности становится и долго, и нерационально. Для этой цели лучше выбрать какую-нибудь клавиатуру, но как и к любому выбору, к нему нужно подходить осознано. Какие же бывают виды клавиатур и как с ними взаимодействовать?
Глобально, все модули данного типа можно поделить на две большие категории: матричные и аналоговые.
Матричные клавиатуры
Самый простой, дешёвый и популярный вид клавиатур. Он относительно прост в изготовлении и заполняет собой большую часть рынка модулей ардуино. Выглядит чаще всего следующим образом:
Принцип работы
Понять как устроена данная клавиатура можно изучив следующую схему:
Чтобы понять какая кнопка была нажата, нужно подавать сигнал на первые четыре контакта модуля и смотреть какой сигнал возвращается со второй. Но не стоит пугаться того, что вам придется писать алгоритмы обработки для восьми пинов вручную — в этом нам поможет готовая библиотека «keypad.h», благодаря которой нам не придется изобретать велосипед.
Подключение к плате
Подключение собственно модуля
В этой статье я воспользуюсь следующей схемой подключения:
У Вас наверное возникает вопрос: «Почему я решил использовать пины со второго по девятый, пропустив нулевой и первый?» — дело в том, что некоторые модули, используют их в качестве каналов RX и TX для получения и передачи данных соответственно. К примеру, блютуз модуль. Поэтому с учётом возможного дополнения проекта другими модулями, было решено оставить данные пины подключения свободными.
Написание скетча
Для начала, для того, чтобы получить возможность использовать библиотеку для подключения клавиатур в коде, нужно установить её на ваше устройство. Это можно сделать следующим образом: в самой Arduino IDE нажимаем Скетч -> Подключить библиотеку -> Управлять библиотеками… либо используем комбинацию горячих клавиш «Ctrl + Shift + I». В поиске вбиваем «keypad.h»(без скобочек) и нажимаем «Установка».
После установки приступаем к написанию скетча:
Плюсы и минусы
Минусы
- Слишком много пинов нужно подключить для работы. Это довольна крупная проблема, если вы создаёте не калькулятор или кодовый замок, а более масштабный проект, в котором еще нужно задействовать огромное количество различных модулей — возможно им просто не хватит пинов.
- Слишком низкое качество выполнения модуля: никто вам не гарантирует постоянный стабильный сигнал. Оригинальные клавитуры выполнены не на очень высоком уровне, а если вы вообще сделали заказ на Aliexpress, то скорее всего, вам предстоит исправлять косяки китайских инженеров паяльником, чтобы добится стабильной работы.
- Используется дополнительная библиотека, которая также будет занимать память микроконтроллера, которой у него и так не очень много. Если вы пишите большой проект с множеством функций и вычислений и вам каждый байт на счету нужно считывать данные с клавиатуры вручную либо использовать аналоговую клавиатуру.
Плюсы
Аналоговые клавиатуры
Принцип работы
В аналоговых клавиатурах для изменения уровня напряжения используются резисторы, а сигнал выходит по одному каналу, который подключается в, собственно, аналоговый пин на плате. Как всё устроено можно понять взглянув на следующую схему:
Подключение к плате
Подключение выполняется очень просто, но может изменятся в зависимости от конкретной клавиатуры. В этой статье я буду рассматривать пример использование этой китайской аналоговой клавиатуры с али.
Итак: аналоговый выход клавиатуры соединяем с любым аналоговым пином на плате, контакт VCC на плате соединяем с 3.3V(не смотрите на надпись на самой клавиатуре, которая гласит о 5V — это ошибка), а GND на плате с GND на модуле. Вы можете воспользоватся следующей схемой:
Написания скетча
Здесь не нужно использовать сторонние библиотеки, т.к. всё предельно просто и понятно. Вот собственно и сам код, который считывает нажатую кнопку и выводит её номер, от 1 до 16(слева на право, с верху в низ) либо 0 если ничего не нажато, в монитор порта.
Плюсы и минусы
Плюсы
- Очень простое подключение
- Занимает лишь один пин
- Экономит память, которую вы не тратите под библиотеку
- Обеспечивает стабильную работу(при условии, если вы не будете нажимать более одной кнопки одновременно)
Минусы
- Стоит дороже матричных клавиатур
- Скорее всего единственным способом покупки будет заказывать с Китая и доставка займёт какое-то время
Итоги
Лично я рекомендую использовать именно аналоговые клавиатуры, так как они чаще-всего более качественные и подключать их проще-простого. Главное обращать внимание на таблицу значений нажатых кнопок, которую предоставляет производитель или же, если таковой нет, можно сделать эти замеры самостоятельно, выводя значения из аналогового порта в монитор порта, чтобы потом использовать их в коде. Но выбор, всегда остается за Вами: использовать стандартный дешёвый вариант либо переплатить ради значительных плюсов в некоторых ситуациях.
На этом у меня всё. Оставляйте свои вопросы в комментариях, пишите своё мнение и встретимся на просторах Хабра!
Большая часть текста содержит объяснение программного кода, его можно скачать здесь либо посмотреть видео под статьей.
Сделать такую клавиатуру можно и самому. Для этого понадобится печатная плата, 12 или 16 обычных кнопок и соединительные провода. Я же буду использовать готовую.
Матричная клавиатура для Arduino
Для чего нужна матричная клавиатура?
Схема подключения матричной клавиатуры к Arduino
Подключать ее к плате следует 8 выводами, каждый из них считывает значения с определенных строк и столбцов. Подключать их следует к выводам на панели Digital. Я подключу, например, к выводам от 2 до 9 включительно. Нулевой и первый трогать не желательно, поскольку они предназначены для UART интерфейса (например, для подключения блютуз-модуля). Рациональнее оставить их свободными.
Схема подключения матричной клавиатуры к Arduino
После того, как вы установили в библиотеку, можно зайти в Ардуино IDE (программа с сайта Arduino) и посмотреть примеры скетчей.
Возьмем самый простой скетч для ознакомления. Он позволяет считывать значение с клавиатуры при нажатии определенной клавиши и выводить их в порт. В данном случае это монитор порта на компьютере.
Если это сделать неправильно, то, например, при нажатии цифры 4, в порт выйдет цифра 6 или любой другой символ. Это можно определить опытным путем и расположить символы, как они расположены на клавиатуре.
Далее нужно указать к каким выводам на плате подключаем управление строками и столбцами.
В функции void setup указываем скорость последовательного соединения с монитором порта 9600 бод. Функция нужна только для подачи питания на модули. В функции Void Loop прописываем условие. Переменная Char используется для хранения только одного символа, например, 1, А или 5, что подходит к ситуации. Если нажатие зафиксировано, то происходит вывод символа в монитор порта с помощью функции Serial Print. В скобках нужно указывать, какую переменную выводим в порт. Если все сделано верно, в мониторе порта получим символ, на который нажимали. Не забудьте в мониторе порта внизу справа указать скорость передачи данных такую же, как в скетче.
Схема с дисплеем и матричной клавиатурой
Давайте выведем данные на дисплей.
Схема подключения сопряженного с модулем I2C дисплея к Arduino
Как видим, нажимая на любой символ, видим его отображение на дисплее.
Подключение дисплея и матричной клавиатуры к Arduino
Можно заметить, если вводить символы дальше, то каждый предыдущий будет стираться, а на его месте появляться новый. Поэтому, если вы хотите вводить символы подряд, то просто удалите строчку, где указано положение курсора.
Чтобы стереть строчку, вспомним калькулятор. Когда нужно было удалить значение, мы нажимали на кнопку сброса. Нажмем на такую кнопку в плате и можем заново набирать символы.
Подключение клавиатуры к Arduino и управляющее действие
Попробуем при нажатии определенной клавиши включать или выключать светодиод. Добавляем его в схему.
Я буду использовать макетную плату и резистор (желательно использовать от 150 до 220 Ом). Двумя перемычками замкну схему, подключив их к пинам питания и земли на плате Ардуино.
Светодиод в примере подключен к пину 8 на плате Ардуино.
Давайте разберем скетч.
Возьмем первый скетч урока и просто его дополним. В начале с помощью полезной функции Define присвоим название подключенному к пину 8 светодиоду ledpin. В функции Void setup указываем сигнал со светодиода как выход.
Подключение клавиатуры к Arduino и управление светодиодом
Смотрите также:
Посты по урокам:
- Первый урок: Светодиод.
- Второй урок: Кнопка.
- Третий урок: Потенциометр.
- Четвертый урок: Сервопривод.
- Пятый урок: Трехцветный светодиод.
- Шестой урок: Пьезоэлемент.
- Седьмой урок: Фоторезистор.
- Восьмой урок: Датчик движения (PIR) на Arduino. Автоматическая отправка E-mail.
- Девятый урок: Подключение датчика температуры и влажности DHT.
Все посты сайта «Занимательная робототехника» по тегу Arduino.
В мире электроники клавиатурой называют устройство, состоящее из отдельных кнопок, которое позволяет вводить информацию в компьютер или в иной электронный прибор.
Клавиатуры имеют массу вариантов исполнения. На старых персональных компьютерах использовались клавиатуры с механическими клавишами, которые имели большой ход и были почти также удобны как клавиши на старых печатных машинках. Последние 15-20 лет широко применяются мембранные клавиатуры, которые проще и дешевле в изготовлении. Именно такую клавиатуру мы будем подключать к Ардуино.
Популярная в Ардуино проектах матричная мембранная клавиатура имеет 12 или 16 кнопок. С нижней части клавиатуры выходит шлейф, заканчивающийся dupont розеткой.
Устройство матричной клавиатуры
Подключение матричной клавиатуры к Ардуино
Подключение дисплея с шиной I2C осуществляется по следующей схеме:
ЖК дисплей | GND | VCC | SDA | SCL |
Ардуино Уно | GND | +5V | A4 | A5 |
Матричная клавиатура имеет 7 выводов, которые подключаются к любым цифровым выводам. В нашем примере мы задействуем выводы 2-8. Выводы 0 и 1, как правило, не используют при подключении клавиатуры, поскольку они предназначены для UART интерфейса.
Схема подключения клавиатуры к Ардуино:
Матричная клавиатура | Row1 | Row2 | Row3 | Row4 | Col1 | Col2 | Col3 |
Ардуино Уно | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
Внешний вид макета:
Программа:
Чтобы работать с клавиатурой можно воспользоваться библиотекой Keypad.
В этой программе также используются библиотеки <Wire.h> и <LiquidCrystal_I2C.h>, т.к. для вывода информации мы воспользовались LCD-дисплеем с интерфейсом I2C.
Кодовый замок
Используя макет, который мы собрали, можно сделать устройство, позволяющее вводить пароль с клавиатуры. Для примера напишем простой код, работающий с паролем из четырёх цифр.
Читайте также: