Кнопка
Тактовая кнопка – простейший переключатель, включаемый в разрыв цепи последовательно нагрузке. Особенность тактовой кнопки в том, что по умолчанию находится в разомкнутом состоянии и замыкает цепь лишь тогда, когда на неё оказывается давление. Если давление прекратить, кнопка автоматически разомкнёт цепь. Чаще всего можно встретить кнопки с двумя и четырьмя контактами. Различия между ними минимальны. Кнопка с четырьмя контактами представляет собой две пары рельс, замыкающихся при нажатии.
ВНЕШНИЙ ВИД | ИЗОБРАЖЕНИЕ НА СХЕМЕ | ПРИМЕР ПОДКЛЮЧЕНИЯ |
Кнопка с двумя контактами | ||
Кнопка с четырьмя контактами | ||
Тактовую кнопку можно использовать и вместе с Arduino. Она подключается в разрыв провода, соединяющего пин питания (+) и один из цифровых входов (pin 0-13). При нажатии на кнопку, цепь замыкается и на вход Arduino поступает сигнал (HIGH). Тем не менее, применять на практике такой “сырой” способ подключения весьма затруднительно из-за дребезга кнопки.
В момент замыкания, контакты кнопки начинают “искрить”, что провоцирует десятки включений-выключений кнопки за несколько миллисекунд. Этот эффект “искрения” и называют дребезгом. Если взглянуть на график сигнала при нажатии кнопки, то можно чётко увидеть моменты, когда происходит дребезг кнопки:
Arduino распознаёт такой сигнал как многократное включение и выключение кнопки и не всегда может обработать его правильно. Обычно с дребезгом кнопок борются программными методами, которые мы рассмотрим в ходе одного из экспериментов.
Кроме этого, в отключенном состоянии кнопка, подключённая к Arduino начинает работать как антенна и улавливает электромагнитные шумы, что очень мешает определить наличие или отсутствие сигнала. Для того, чтобы избавиться от шумного сигнала используют подтягивающие или стягивающие резиторы. Номинал резистора должен быть достаточно большим, мы будем использовать резистор, с сопротивлением R = 10 кОм. Схемы подключения кнопок с подтягивающим и стягивающим резистором приведены ниже:
Как это работает? При подключении по схеме со стягивающим резистором, в незамкнутом состоянии, наведённый “из воздуха” шум, будет стягиваться на землю через резистор. В это время, на 6-м пине Arduino будет низкий сигнал (LOW). Так как стягивающий резистор обладает сопротивлением, многократно превышающим сопротивление кнопки и провода, то при замыкании кнопки, высокий сигнал (HIGH) с пина 5V пойдёт на 6-й пин Arduino.
При подключении по схеме с подтягивающим резистором, в незамкнутом состоянии кнопки, на 6-м пине Arduino будет высокий сигнал (HIGH), поступающий с пина 5V через подтягивающий резистор. При замыкании кнопки, сигнал с пина 5V, получив путь с малым сопротивлением уйдёт на пин GND, тем самым “убрав” сигнал с 6-го пина (LOW).