Кнопка (модуль)

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

Общие сведения:

Тактовые кнопки предназначены для коммутации электрических цепей и широко используются в радиоэлектронной аппаратуре. Кнопка имеет три вывода: Signal (S), Vcc (V), GND (G). В не нажатом состоянии на выходе S присутствует уровень логического «0» (выход прижат к GND через резистор). В нажатом состоянии на выходе S устанавливается уровень логической «1» (выход соединяется с Vcc).

Спецификация:

  • Рабочее напряжение: до 5,5 В
  • Коммутируемый ток: до 50 мА
  • Время дребезга при нажатии: < 3 мкс
  • Время дребезга при отпускании: < 5 мс
  • Сопротивление прижимающего резистора: 10 кОм
  • Сопротивление S — V: > 100 МОм (в разомкнутом состоянии)
  • Сопротивление S — V: < 100 мОм (в замкнутом состоянии)
  • Рабочая температура: -20 … 70 °C
  • Габариты: 30x30x15 (без учёта выводов)

Подключение

Кнопку можно подключать к любому выводу Arduino, как цифровому, так и аналоговому.

Питание:

Рабочее напряжение питания до 5,5 В постоянного тока

Работа с модулем:

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

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

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

Примеры:

При работе с кнопкой можно фиксировать её состояния (нажата отпущена) и события (нажимается отпускается).

Фиксация всех состояний и событий одной кнопки:

 

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

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

Фиксация всех состояний и событий одной кнопки через переменную:

Следующий пример является копией данного скетча, только проверяется состояние, не одной, а двух кнопок.

Фиксация всех состояний и событий двух (и более) кнопок через переменные:

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

Управляем светодиодом при каждом нажатии на кнопку:

Светодиод будет менять своё состояние (включён/выключен) при каждом нажатии на кнопку.

Управляем светодиодом при каждом отпускании кнопки:

Светодиод будет менять своё состояние (включён/выключен) при каждом отпускании на кнопки.

Включаем светодиод при удержании кнопки дольше 2 секунд:

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

При удержании кнопки, постоянно выполняется цикл while с задержкой в теле цикла на 10 мс. С каждым проходом данного цикла, счетчик timeLED увеличивается на единицу. После того как значение счетчика timeLED станет >= 200 (200*10 мс = 2 сек.) включается светодиод, а счетчик перестанет увеличиваться. Как только кнопка будет отпущена, произойдет выход из цикла while и светодиод погаснет.

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *