Резистивная клавиатура для ардуино схема

Содержание
  1. Ардуино и клавиатуры (полный гайд)
  2. Матричные клавиатуры
  3. Принцип работы
  4. Подключение к плате
  5. Подключение собственно модуля
  6. Написание скетча
  7. Плюсы и минусы
  8. Минусы
  9. Плюсы
  10. Аналоговые клавиатуры
  11. Принцип работы
  12. Подключение к плате
  13. Написания скетча
  14. Плюсы и минусы
  15. Плюсы
  16. Минусы
  17. Итоги
  18. Резистивные кнопки
  19. Резистивная клавиатура на Arduino
  20. Аппаратная часть
  21. Программа и схема
  22. Программа для управления Android устройством на Ардуино
  23. Заключение
  24. Резистивная клавиатура для ардуино схема
  25. Резистивная клавиатура на Arduino
  26. Аппаратная часть
  27. Программа и схема
  28. Программа для управления Android устройством на Ардуино
  29. Заключение
  30. Резистивные кнопки
  31. Аналоговая клавиатура для Arduino своими руками
  32. Оставьте комментарий:
  33. Навигация по сайту:
  34. Юный Технарь:
  35. Помощь проекту:
  36. Поиск
  37. Последние статьи
  38. Идея — датчик уровня жидкости на тензода…
  39. Фреймворк JeeUI2 в программе FLProg — Ко…
  40. Мой канал на YouTube
  41. Подпишитесь!
  42. Как сделать самому резистивную клавиатуру для arduino
  43. Ардуино и клавиатуры (полный гайд)
  44. Матричные клавиатуры
  45. Принцип работы
  46. Подключение к плате
  47. Подключение собственно модуля
  48. Написание скетча
  49. Плюсы и минусы
  50. Минусы
  51. Плюсы
  52. Аналоговые клавиатуры
  53. Принцип работы
  54. Подключение к плате
  55. Написания скетча
  56. Плюсы и минусы
  57. Плюсы
  58. Минусы
  59. Итоги

Ардуино и клавиатуры (полный гайд)

Привет, жители Хабра! Сегодня я решил сделать полный гайд по клавиатурам для Arduino.
Внимание! Статья ориентирована преимущественно на новичков!

Во многих проектах появляется необходимость создания возможности ввода данных пользователем. Если вам нужно реализовать большое количество кнопок(относительно), то подключать их по-отдельности становится и долго, и нерационально. Для этой цели лучше выбрать какую-нибудь клавиатуру, но как и к любому выбору, к нему нужно подходить осознано. Какие же бывают виды клавиатур и как с ними взаимодействовать?

Глобально, все модули данного типа можно поделить на две большие категории: матричные и аналоговые.

По теме:  Как найти ширину долготу объекта

Матричные клавиатуры

Самый простой, дешёвый и популярный вид клавиатур. Он относительно прост в изготовлении и заполняет собой большую часть рынка модулей ардуино. Выглядит чаще всего следующим образом:

Принцип работы

Понять как устроена данная клавиатура можно изучив следующую схему:

Чтобы понять какая кнопка была нажата, нужно подавать сигнал на первые четыре контакта модуля и смотреть какой сигнал возвращается со второй. Но не стоит пугаться того, что вам придется писать алгоритмы обработки для восьми пинов вручную — в этом нам поможет готовая библиотека «keypad.h», благодаря которой нам не придется изобретать велосипед.

Подключение к плате

Подключение собственно модуля

В этой статье я воспользуюсь следующей схемой подключения:

У Вас наверное возникает вопрос: «Почему я решил использовать пины со второго по девятый, пропустив нулевой и первый?» — дело в том, что некоторые модули, используют их в качестве каналов RX и TX для получения и передачи данных соответственно. К примеру, блютуз модуль. Поэтому с учётом возможного дополнения проекта другими модулями, было решено оставить данные пины подключения свободными.

Написание скетча

Для начала, для того, чтобы получить возможность использовать библиотеку для подключения клавиатур в коде, нужно установить её на ваше устройство. Это можно сделать следующим образом: в самой Arduino IDE нажимаем Скетч -> Подключить библиотеку -> Управлять библиотеками… либо используем комбинацию горячих клавиш «Ctrl + Shift + I». В поиске вбиваем «keypad.h»(без скобочек) и нажимаем «Установка».

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

Плюсы и минусы

Минусы

Плюсы

Аналоговые клавиатуры

Принцип работы

В аналоговых клавиатурах для изменения уровня напряжения используются резисторы, а сигнал выходит по одному каналу, который подключается в, собственно, аналоговый пин на плате. Как всё устроено можно понять взглянув на следующую схему:

Подключение к плате

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

Итак: аналоговый выход клавиатуры соединяем с любым аналоговым пином на плате, контакт VCC на плате соединяем с 3.3V(не смотрите на надпись на самой клавиатуре, которая гласит о 5V — это ошибка), а GND на плате с GND на модуле. Вы можете воспользоватся следующей схемой:

Написания скетча

Здесь не нужно использовать сторонние библиотеки, т.к. всё предельно просто и понятно. Вот собственно и сам код, который считывает нажатую кнопку и выводит её номер, от 1 до 16(слева на право, с верху в низ) либо 0 если ничего не нажато, в монитор порта.

Плюсы и минусы

Плюсы

Минусы

Итоги

Лично я рекомендую использовать именно аналоговые клавиатуры, так как они чаще-всего более качественные и подключать их проще-простого. Главное обращать внимание на таблицу значений нажатых кнопок, которую предоставляет производитель или же, если таковой нет, можно сделать эти замеры самостоятельно, выводя значения из аналогового порта в монитор порта, чтобы потом использовать их в коде. Но выбор, всегда остается за Вами: использовать стандартный дешёвый вариант либо переплатить ради значительных плюсов в некоторых ситуациях.

На этом у меня всё. Оставляйте свои вопросы в комментариях, пишите своё мнение и встретимся на просторах Хабра!

Источник

Резистивные кнопки

Сегодня мы продолжим рассматривать ситуацию нехватки выводов на плате Ардуино.
Предыдущее видео было про использование сдвигового регистра 74HC165.
Если подключать обычным способом 10 кнопок, то нам понадобятся 10 входов на Ардуино, а ведь ещё надо управлять чем нибудь.
Так что этот вариант нам не подходит.
Бывает 2 вида подключения. Последовательное и параллельное.

Последовательное подключение.

Параллельное подключение.

Видите, задействован всего 1 вход Ардуино.

Можно подключить матричную клавиатуру, но это тоже займёт много контактов.

Подключая кнопки по резистивной, или по-другому, аналоговой схеме, мы займём всего лишь 1 вход на Ардуино.
И подключать можно огромное количество кнопок. В пределах разумного, конечно.
Для тех, кто досмотрит видео до конца, я расскажу своё личное мнение от использования этого метода.

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


Исключением является только кнопка без резистора. Если вы нажмёте несколько кнопок, но одна из них будет без резистора, то значением всегда будет ЭТА КНОПКА.

Мы сегодня будем использовать последовательное подключение.

Номиналы резисторов могут быть любыми.
Я в этом примере буду использовать 1 резистор на 10 кОм и 9 резисторов по 1 кОм.
Подключать кнопки будем к аналоговому порт А0, но можно к любому аналоговому порту Ардуино.
Arduino на своём аналоговом входе проводит измерение напряжения.
АЦП Arduino имеет разрешение 10 бит, т.е. позволяет выводить значения в десятичном виде от 0 до 1023.
В относительных единицах деление шкалы 5/1024 = 4.9 мВ
Вот с такой точностью можно проводить измерения.

В примере я использовал внешнюю подтяжку к 5 вольтам.
Кто не понимает о чём я, посмотрите видео про кнопки на моём канале, там очень подробно всё объяснено.
Если ни одна кнопка не нажата, то на входе А0 высокий уровень, то есть 5 вольт или максимальное значение — 1023.
Если мы нажимаем 1 кнопку, это та, что без резистора на вход А0 поступает низкий уровень, а значение с 1023 меняется на 0.
Данные могут немного отличаться от идеала. Это зависит от точности резистора, обычно это 5– 10 %, и от напряжения питания.
Вторая кнопка подключена через резистор 1 кОм. При нажатии на неё, у нас срабатывает резистивный делитель, делитель напряжения.
С одной стороны 10 кОм – это верхнее плечо делителя, оно будет постоянное,
с другой 1 кОм – это нижнее плечо делителя, оно будет меняться в зависимости от нажатой кнопки.
Рассчитать получаемое значение можно по формуле,

а можно просто посмотреть в мониторе порта. Правда там будет не напряжение, а значение от 0 до 1023.
Получившееся значение можно умножить на 0,49 и получить напряжение.
Например.
Если у вас значение 512, то 512 * 0.49/100 = то получится 2,5 вольта.
x=(511*0,49)/100

При нажатии различных кнопок на вход Ардуино будут поступать разные значения.
а значение функции analogRead() будет зависеть от нажатой кнопки.
Так как чем больше номер кнопки, тем больше резисторов будут подключены, и тем больше будет их общее сопротивление.

Возьмём пример из самой программы Ардуино.

Только немного увеличим delay, что бы значения не так часто менялись.
При включении, когда ещё не нажата ни одна кнопка, мы видим максимальное значение 1023.
Это, потому что кнопки у нас притянуты к плюсу питания, а именно к + 5 вольт.
Нажимаем кнопку 1 и не отпускаем. Смотрим массив значений и выбираем максимальное из них.
Так же проделываем для всех кнопок.
В основном максимальное значение появляется при первом срабатывании кнопки.
Как видите значения не всегда одинаковые.
Они постоянно меняются. Один из вариантов почему это происходит это питание.
Если подключить большую нагрузку, то просадка напряжения будет заметнее.
Это один из вариантов почему я бы не советовал использовать резистивный метод подключения кнопок.
Затем выписываем эти значения в блокнот

У меня вот такие значения, у вас будут другие.
Теперь у нас всё готово для написания скетча работы с 10 кнопками.
Давайте посмотрим пример.

Для работы я спаял вот такую плату на 10 кнопок.

Ещё я добавил двухцветный светодиод, так как хотел использовать эту клавиатуру в примере кодового замка, но понял, что мне этот вариант не подходит. Потом объясню почему.

А вот теперь моё личное мнение.
Когда я только начал собирать схему я был доволен.
Ведь на 1 контакт можно подключить кучу кнопок и сделать целую клавиатуру.
НО.
Я бы не стал применять этот метод не только в серьёзных разработках, но и в самых простых, любительских.
Во-первых, подбор резисторов.
У них очень большой разброс значений.
Возьмём мой пример с резисторами 1 кОм.
Один резистор был 980 Ом, а другой 1,1 кОм. Вы просто замучаетесь подбирать значения.
На делителе напряжения будут разные границы между соседними кнопками. Где-то значения в 100 единиц, а где-то 20, и вам будет сложно написать условия срабатывания.
Второе это питание.

Так как постоянно идёт сравнение с исходным напряжением, а оно может скакать, то и значения у вас будут постоянно разными – это тоже создаст большие трудности.
При количестве кнопок до 5 штук ещё можно написать нормально работающий код, а вот больше – это очень сложно.
Но повторяю – это лишь моё мнение.
Я бы лучше применил сдвиговый регистр 74HC165 видео работы есть на канале. Он избавлен от всех этих недостатков.

Источник

Резистивная клавиатура на Arduino

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

Аппаратная часть

Для реализации данного проекта нам понадобится любой контроллер Arduino на чипе ATmega32u4, например Arduino Leonardo. Этот микроконтроллер позволяет делать HID устройства.

Подойдёт и более компактный вариант от RobotClass — Лео-микро ROC, подходящий для встраиваемой установки. Например, в автомобиль — для управления планшетом. Так же будет нужен набор резисторов различного номинала (к примеру 10 кОм) и набор кнопок.

Количество кнопок и резисторов зависит от того, сколько требуется сделать кнопок.

Программа и схема

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

После сборки схемы получаем

После подключаем контроллер к компьютеру и загружаем в плату следующий скетч

После того, как загрузили скетч, открываем «Монитор порта» и нажимая на кнопки видим их значения в мониторе порта .

Программа для управления Android устройством на Ардуино

Теперь попробуем сделать клавиатуру для управления планшетом или телефоном на базе Android. Схема устройства остается та же, что и была. Но теперь контроллер будет распознаваться устройством как USB HID, в нашем случае клавиатурой.

Загружаем следующий скетч:

Теперь Android устройство распознает нашу клавиатуру, и мы можем управлять, например, медиаплеером.

Заключение

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

Источник

Резистивная клавиатура для ардуино схема

Резистивная клавиатура на Arduino

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

Аппаратная часть

Для реализации данного проекта нам понадобится любой контроллер Arduino на чипе ATmega32u4, например Arduino Leonardo. Этот микроконтроллер позволяет делать HID устройства.

Подойдёт и более компактный вариант от RobotClass — Лео-микро ROC, подходящий для встраиваемой установки. Например, в автомобиль — для управления планшетом. Так же будет нужен набор резисторов различного номинала (к примеру 10 кОм) и набор кнопок.

Количество кнопок и резисторов зависит от того, сколько требуется сделать кнопок.

Программа и схема

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

После сборки схемы получаем

После подключаем контроллер к компьютеру и загружаем в плату следующий скетч

После того, как загрузили скетч, открываем «Монитор порта» и нажимая на кнопки видим их значения в мониторе порта .

Программа для управления Android устройством на Ардуино

Теперь попробуем сделать клавиатуру для управления планшетом или телефоном на базе Android. Схема устройства остается та же, что и была. Но теперь контроллер будет распознаваться устройством как USB HID, в нашем случае клавиатурой.

Загружаем следующий скетч:

Теперь Android устройство распознает нашу клавиатуру, и мы можем управлять, например, медиаплеером.

Заключение

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

Резистивные кнопки

Сегодня мы продолжим рассматривать ситуацию нехватки выводов на плате Ардуино.
Предыдущее видео было про использование сдвигового регистра 74HC165.
Если подключать обычным способом 10 кнопок, то нам понадобятся 10 входов на Ардуино, а ведь ещё надо управлять чем нибудь.
Так что этот вариант нам не подходит.
Бывает 2 вида подключения. Последовательное и параллельное.

Последовательное подключение.

Параллельное подключение.

Видите, задействован всего 1 вход Ардуино.

Можно подключить матричную клавиатуру, но это тоже займёт много контактов.

Подключая кнопки по резистивной, или по-другому, аналоговой схеме, мы займём всего лишь 1 вход на Ардуино.
И подключать можно огромное количество кнопок. В пределах разумного, конечно.
Для тех, кто досмотрит видео до конца, я расскажу своё личное мнение от использования этого метода.

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


Исключением является только кнопка без резистора. Если вы нажмёте несколько кнопок, но одна из них будет без резистора, то значением всегда будет ЭТА КНОПКА.

Мы сегодня будем использовать последовательное подключение.

Номиналы резисторов могут быть любыми.
Я в этом примере буду использовать 1 резистор на 10 кОм и 9 резисторов по 1 кОм.
Подключать кнопки будем к аналоговому порт А0, но можно к любому аналоговому порту Ардуино.
Arduino на своём аналоговом входе проводит измерение напряжения.
АЦП Arduino имеет разрешение 10 бит, т.е. позволяет выводить значения в десятичном виде от 0 до 1023.
В относительных единицах деление шкалы 5/1024 = 4.9 мВ
Вот с такой точностью можно проводить измерения.

В примере я использовал внешнюю подтяжку к 5 вольтам.
Кто не понимает о чём я, посмотрите видео про кнопки на моём канале, там очень подробно всё объяснено.
Если ни одна кнопка не нажата, то на входе А0 высокий уровень, то есть 5 вольт или максимальное значение — 1023.
Если мы нажимаем 1 кнопку, это та, что без резистора на вход А0 поступает низкий уровень, а значение с 1023 меняется на 0.
Данные могут немного отличаться от идеала. Это зависит от точности резистора, обычно это 5– 10 %, и от напряжения питания.
Вторая кнопка подключена через резистор 1 кОм. При нажатии на неё, у нас срабатывает резистивный делитель, делитель напряжения.
С одной стороны 10 кОм – это верхнее плечо делителя, оно будет постоянное,
с другой 1 кОм – это нижнее плечо делителя, оно будет меняться в зависимости от нажатой кнопки.
Рассчитать получаемое значение можно по формуле,

а можно просто посмотреть в мониторе порта. Правда там будет не напряжение, а значение от 0 до 1023.
Получившееся значение можно умножить на 0,49 и получить напряжение.
Например.
Если у вас значение 512, то 512 * 0.49/100 = то получится 2,5 вольта.
x=(511*0,49)/100

При нажатии различных кнопок на вход Ардуино будут поступать разные значения.
а значение функции analogRead() будет зависеть от нажатой кнопки.
Так как чем больше номер кнопки, тем больше резисторов будут подключены, и тем больше будет их общее сопротивление.

Возьмём пример из самой программы Ардуино.

Только немного увеличим delay, что бы значения не так часто менялись.
При включении, когда ещё не нажата ни одна кнопка, мы видим максимальное значение 1023.
Это, потому что кнопки у нас притянуты к плюсу питания, а именно к + 5 вольт.
Нажимаем кнопку 1 и не отпускаем. Смотрим массив значений и выбираем максимальное из них.
Так же проделываем для всех кнопок.
В основном максимальное значение появляется при первом срабатывании кнопки.
Как видите значения не всегда одинаковые.
Они постоянно меняются. Один из вариантов почему это происходит это питание.
Если подключить большую нагрузку, то просадка напряжения будет заметнее.
Это один из вариантов почему я бы не советовал использовать резистивный метод подключения кнопок.
Затем выписываем эти значения в блокнот

У меня вот такие значения, у вас будут другие.
Теперь у нас всё готово для написания скетча работы с 10 кнопками.
Давайте посмотрим пример.

Для работы я спаял вот такую плату на 10 кнопок.

Ещё я добавил двухцветный светодиод, так как хотел использовать эту клавиатуру в примере кодового замка, но понял, что мне этот вариант не подходит. Потом объясню почему.

А вот теперь моё личное мнение.
Когда я только начал собирать схему я был доволен.
Ведь на 1 контакт можно подключить кучу кнопок и сделать целую клавиатуру.
НО.
Я бы не стал применять этот метод не только в серьёзных разработках, но и в самых простых, любительских.
Во-первых, подбор резисторов.
У них очень большой разброс значений.
Возьмём мой пример с резисторами 1 кОм.
Один резистор был 980 Ом, а другой 1,1 кОм. Вы просто замучаетесь подбирать значения.
На делителе напряжения будут разные границы между соседними кнопками. Где-то значения в 100 единиц, а где-то 20, и вам будет сложно написать условия срабатывания.
Второе это питание.

Так как постоянно идёт сравнение с исходным напряжением, а оно может скакать, то и значения у вас будут постоянно разными – это тоже создаст большие трудности.
При количестве кнопок до 5 штук ещё можно написать нормально работающий код, а вот больше – это очень сложно.
Но повторяю – это лишь моё мнение.
Я бы лучше применил сдвиговый регистр 74HC165 видео работы есть на канале. Он избавлен от всех этих недостатков.

Аналоговая клавиатура для Arduino своими руками

Аналоговая клавиатура для Arduino своими руками.

Ссылки на компоненты:

Модуль расширителя интерфейса (I2C)- http://ali.pub/dwj5n

ЖК-дисплей LCD1602 (синий экран)- http://ali.pub/alnru

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

Аналоговая клавиатура для Arduino своими руками

Оставьте комментарий:

Юный Технарь:

Помощь проекту:

Деньги можно перечислить на карту Сбербанка России:

4276 5400 2194 5088

Поиск

Последние статьи

Идея — датчик уровня жидкости на тензода…

Идея — датчик уровня жидкости на тензодатчике своими руками.

Фреймворк JeeUI2 в программе FLProg — Ко…

Фреймворк JeeUI2 в программе FLProg — Контролер для полива своими руками.

Мой канал на YouTube

Подпишитесь!

2015, Arduinoprom.ru — блог Чилингаряна Грачика. Все авторские права на тексты принадлежат ему.

При размещении текстов и видеоматериалов на сторонних ресурсах активная гиперссылка ОБЯЗАТЕЛЬНА.

Все логотипы и товарные знаки, размещенные на сайте, принадлежат только их законным владельцам (правообладателям).

Как сделать самому резистивную клавиатуру для arduino

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

Резистивная клавиатура для arduino Резистивная клавиатура для arduino

В общем как это все устроено.

Я надеюсь все знают как работает делитель напряжения. Есть 2 резистора подключенных последовательно в цепь питания и от средней точки этих резисторов снимается напряжение, величина которого зависит от падения напряжения на этих самых резисторах. А если совсем просто, то если на входе й нас 5 вольт и 2 резистора по 1кОм, то со средней точки мы будем снимать 2,5 вольт.

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

Есть еще и другой вариант подключения. В этом случае кнопкой подтягивается несколько последовательно соединенных резисторов. Если не одна кнопка не нажата, то 5 вольт через резистор подаются на аналоговый вход, а при нажатии на кнопку подкидываем резистор и втягиваем часть напряжения на массу.

Это даже можно продемонстрировать. Ниже пример, который отправляет значение в serial которое считывает функцией analogread на выходе А0 к которому подключена клавиатура. Когда ничего не нажато в мониторе порта будет 1023, если надавить на кнопку это значение будет отличаться и зависеть от нажатой кнопки.

Осталось только различать эти значения в коде без условия if здесь не обойтись, а лучше вообще это вынести в отдельную функцию. К примеру эта функция будет key() и возвращает она байт

Дальше в цикле отправляем в serial, то что возвращает функция key

Ардуино и клавиатуры (полный гайд)

Привет, жители Хабра! Сегодня я решил сделать полный гайд по клавиатурам для Arduino.
Внимание! Статья ориентирована преимущественно на новичков!

Во многих проектах появляется необходимость создания возможности ввода данных пользователем. Если вам нужно реализовать большое количество кнопок(относительно), то подключать их по-отдельности становится и долго, и нерационально. Для этой цели лучше выбрать какую-нибудь клавиатуру, но как и к любому выбору, к нему нужно подходить осознано. Какие же бывают виды клавиатур и как с ними взаимодействовать?

Глобально, все модули данного типа можно поделить на две большие категории: матричные и аналоговые.

Матричные клавиатуры

Самый простой, дешёвый и популярный вид клавиатур. Он относительно прост в изготовлении и заполняет собой большую часть рынка модулей ардуино. Выглядит чаще всего следующим образом:

Принцип работы

Понять как устроена данная клавиатура можно изучив следующую схему:

Чтобы понять какая кнопка была нажата, нужно подавать сигнал на первые четыре контакта модуля и смотреть какой сигнал возвращается со второй. Но не стоит пугаться того, что вам придется писать алгоритмы обработки для восьми пинов вручную — в этом нам поможет готовая библиотека «keypad.h», благодаря которой нам не придется изобретать велосипед.

Подключение к плате

Подключение собственно модуля

В этой статье я воспользуюсь следующей схемой подключения:

У Вас наверное возникает вопрос: «Почему я решил использовать пины со второго по девятый, пропустив нулевой и первый?» — дело в том, что некоторые модули, используют их в качестве каналов RX и TX для получения и передачи данных соответственно. К примеру, блютуз модуль. Поэтому с учётом возможного дополнения проекта другими модулями, было решено оставить данные пины подключения свободными.

Написание скетча

Для начала, для того, чтобы получить возможность использовать библиотеку для подключения клавиатур в коде, нужно установить её на ваше устройство. Это можно сделать следующим образом: в самой Arduino IDE нажимаем Скетч -> Подключить библиотеку -> Управлять библиотеками… либо используем комбинацию горячих клавиш «Ctrl + Shift + I». В поиске вбиваем «keypad.h»(без скобочек) и нажимаем «Установка».

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

Плюсы и минусы

Минусы

Плюсы

Аналоговые клавиатуры

Принцип работы

В аналоговых клавиатурах для изменения уровня напряжения используются резисторы, а сигнал выходит по одному каналу, который подключается в, собственно, аналоговый пин на плате. Как всё устроено можно понять взглянув на следующую схему:

Подключение к плате

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

Итак: аналоговый выход клавиатуры соединяем с любым аналоговым пином на плате, контакт VCC на плате соединяем с 3.3V(не смотрите на надпись на самой клавиатуре, которая гласит о 5V — это ошибка), а GND на плате с GND на модуле. Вы можете воспользоватся следующей схемой:

Написания скетча

Здесь не нужно использовать сторонние библиотеки, т.к. всё предельно просто и понятно. Вот собственно и сам код, который считывает нажатую кнопку и выводит её номер, от 1 до 16(слева на право, с верху в низ) либо 0 если ничего не нажато, в монитор порта.

Плюсы и минусы

Плюсы

Минусы

Итоги

Лично я рекомендую использовать именно аналоговые клавиатуры, так как они чаще-всего более качественные и подключать их проще-простого. Главное обращать внимание на таблицу значений нажатых кнопок, которую предоставляет производитель или же, если таковой нет, можно сделать эти замеры самостоятельно, выводя значения из аналогового порта в монитор порта, чтобы потом использовать их в коде. Но выбор, всегда остается за Вами: использовать стандартный дешёвый вариант либо переплатить ради значительных плюсов в некоторых ситуациях.

На этом у меня всё. Оставляйте свои вопросы в комментариях, пишите своё мнение и встретимся на просторах Хабра!

Источник

ТОПоГИС