Arduino и кнопка
Описание
Кнопка – самый базовый элемент ввода данных в микроконтроллер. Функционально кнопка замыкает контакт при нажатии, что может быть использовано для передачи через неё электрического сигнала на пин МК. МК читает значение пина и таким образом понимает, нажата кнопка или нет.
Работа с пинами и ручной опрос кнопки относятся к базовым понятиям и очень подробно разобраны в уроках:
Подключение к МК
Кнопка может быть подключена на любой цифровой пин (в случае Arduino NANO – D0-D13, A0-A5) и опрашиваться как цифровое значение при помощи digitalRead(pin)
. Также можно работать на аналоговых пинах с аналоговой величиной, но это не рационально. Так как напряжение на цифровом пине должно быть точно определено, при подключении кнопки обязательно осуществляется “подтяжка” пина к противоположному от кнопки значению, подробнее об этом см. в уроке. Мы всегда будем подключать кнопку на GND, а пин подтягивать встроенной подтяжкой при помощи pinMode(pin, INPUT_PULLUP)
. Пример подключения двух кнопок на макетке:
Кнопки из набора не очень приспособлены для подключения на макетной плате: у них очень широкие изогнутые ножки, которые туго входят в отверстия. Можно выпрямить их, а затем скрутить на 90 градусов при помощи пинцета. Так они не будут излишне растягивать контакты платы. Вторую пару ножек можно отогнуть или откусить кусачками.
Подключение к модулям
Кнопка может быть использована для управления модулями с логическим входом: реле, транзистор и другим подобным. Рассмотрим подключение при питании от сетевого адаптера:
Библиотеки
С кнопкой можно работать без библиотек, просто опрашивая пин, основные алгоритмы подробно разобраны в уроках по ссылкам выше. Но для удобства можно использовать библиотеки, предоставляющие удобные функции для расширенного опроса кнопки (клик, несколько кликов, удержание и так далее):
В примерах на этом сайте мы будем использовать EncButton как самую лёгкую и универсальную, также она позволяет работать с энкодером и энкодером с кнопкой. Библиотека идёт в архиве к набору GyverKIT, а свежую версию всегда можно установить/обновить из встроенного менеджера библиотек Arduino по названию EncButton. Краткая документация находится по ссылке выше, базовые примеры есть в самой библиотеке.
Примеры
Домашнее задание
- Изучить остальные функции для работы с кнопкой
- Добавить и опросить третью кнопку, задачу придумать самому
- Изучить примеры к библиотеке EncButton