Как подключить кнопку к Arduino
Инструкция по подключению кнопки к Arduino
Нам понадобится:
- Arduino UNO или иная совместимая плата;
- тактовая кнопка;
- резистор 10 кОм (вот отличный набор резисторов с основными номиналами от 10 Ом до 10 МОм);
- макетная плата (breadboard);
- соединительные провода (рекомендую вот такой набор);
- персональный компьютер со средой разработки Arduino IDE.
1 Виды кнопок
Кнопки бывают разные, но все они выполняют одну функцию – физически соединяют (или, наоборот, разрывают) между собой проводники для обеспечения электрического контакта. В простейшем случае – это соединение двух проводников, есть кнопки, которые соединяют большее количество проводников.
Некоторые кнопки после нажатия оставляют проводники соединёнными (фиксирующиеся кнопки), другие – сразу же после отпускания размыкают цепь (нефиксирующиеся кнопки).
Также кнопки делят на:
- нормально разомкнутые,
- нормально замкнутые.
Первые при нажатии замыкают цепь, вторые – размыкают.
Сейчас нашёл широкое применение тип кнопок, которые называют «тактовые кнопки». Тактовые – не от слова «такт», а от слова «тактильный», т.к. нажатие хорошо чувствуется пальцами. Но этот ошибочный термин устоялся, и теперь эти кнопки у нас повсеместно так называют. Это кнопки, которые при нажатии замыкают электрическую цепь, а при отпускании – размыкают, т.е. это нефиксирующиеся, нормально разомкнутые кнопки.
Размеры стандартной тактовой кнопки:
2Дребезг контактов
Кнопка – очень простое и полезное изобретение, служащее для лучшего взаимодействия человека и техники. Но, как и всё в природе, она не идеальна. Проявляется это в том, что при нажатии на кнопку и при её отпускании возникает т.н. «дребезг» ("bounce" по-английски). Это многократное переключение состояния кнопки за короткий промежуток времени (порядка нескольких миллисекунд), прежде чем она примет установившееся состояние. Это нежелательное явление возникает в момент переключения кнопки из-за упругости материалов кнопки или из-за возникающих при электрическом контакте микроискр.
В следующей статье подробно описаны основные способы борьбы с «дребезгом» при замыкании и размыкании контактов. А пока что рассмотрим варианты подключения кнопки к Arduino.
3 Некорректное подключение кнопки
Чтобы подключить нормально разомкнутую тактовую кнопку к Arduino, можно поступить самым простым способом: один свободный проводник кнопки соединить с питанием или землёй, другой – с цифровым выводом Arduino. Но, вообще говоря, это неправильно. Дело в том, что в моменты, когда кнопка не замкнута, на цифровом выводе Ардуино будут появляться электромагнитные наводки, и из-за этого возможны ложные срабатывания.
Чтобы избежать наводок, цифровой вывод обычно подключают через достаточно большой резистор (10 кОм) либо к земле, либо к питанию. В первом случае это называется «схема с подтягивающим резистором», во втором – «схема со стягивающим резистором». Давайте рассмотрим каждую из них.
4Подключение кнопки по схеме с подтягивающим резистором
Сначала подключим к Arduino кнопку по схеме с подтягивающим резистором. Для этого один контакт кнопки соединим с землёй, второй – с цифровым выходом "2". Цифровой выход "2" также подключим через резистор номиналом 10 кОм к питанию +5 В.
Напишем вот такой скетч для обработки нажатий на кнопку и загрузим в Arduino.
// Задаём номера выводов: const int buttonPin = 2; const int ledPin = 13; void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); } void loop() { int buttonState = digitalRead(buttonPin); // считываем состояние кнопки if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); // зажигаем светодиод при нажатии кнопки } else { digitalWrite(ledPin, LOW); // гасим светодиод при отпускании кнопки } }
Встроенный светодиод на выводе "13" постоянно горит, пока не нажата кнопка. Т.е. на порте "2" Arduino всегда присутствует высокий логический уровень HIGH. Когда нажимаем кнопку, напряжение на "2" порте принимает состояние LOW, и светодиод гаснет.
5 Подключение кнопки по схеме со стягивающим резистором
Теперь соберём схему со стягивающим резистором. Один контакт кнопки соединим с питанием +5 В, второй – с цифровым выходом "2". Цифровой выход "2" подключим через резистор номиналом 10 кОм к земле. Скетч менять не будем.
При включении схемы на цифровом порте "2" Arduino низкий уровень LOW, и светодиод не горит. При нажатии на кнопку на порт "2" поступает высокий уровень HIGH, и светодиод загорается.
Поблагодарить автора:
Поделиться
Похожие материалы (по тегу)
2 комментарии
-
Андрей 20.09.2019 16:58 Комментировать
Здравствуйте как подключить 2 кнопки к светодиодной ленте и каждой кнопке задать режим загорания диодов на ленте!
-
aave1 21.09.2019 22:31 Комментировать
Андрей! Две кнопки следует подключать точно так же, как и одну, только к разным портам Arduino. Соответственно, вам нужно отлавливать состояние кнопки и в зависимости от него менять программу управления светодиодной лентой.