Освой Arduino играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Кнопка

Кнопка
Внешний вид

Кнопка
Fritzing

Кнопка
Условное обозначение на схеме

Очень распространённый тип компонентов. Кнопки могут быть самых разных типов. С кнопкой связано понятие дребезга, не забывайте о нём.

Кнопки бывают двух видов:

  • Переключатели с фиксированным положением
  • Тактовые кнопки (которые возвращаются в исходное положение)

Стандартная кнопка как на рисунках рассчитана на ток 50 mA, максимальное напряжение 24V.

ВАЖНО не перепутать контакты при подключении - какие контакты соединены, а какие замыкаются при нажатии. Посмотрите на кнопку внимательно: пары ножек расположены по бокам кнопки. Сама кнопка квадратная, но расстояния между парами контактов визуально заметны: можно сразу выделить два на одной стороне и два на другой. Так вот, именно между одной «парой» на стороне и будет реализован выключатель. Если не уверены, то лучше прозвонить кнопку.

Button

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

Button

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

Кнопка в модульном исполнении

Кнопка также встречается в модульном исполнении, например, модуль KY-004. Имеет три вывода.


KY-004 | Arduino 
-----------------
     S | 3 
middle | 5V 
     - | GND

Button

Работаем как с обычными кнопками.


int led = 13; // светодиод
int buttonPin = 3; // кнопка
int val;

void setup()
{
	pinMode(led, OUTPUT);
	pinMode(buttonPin, INPUT);
}

void loop()
{
	val = digitalRead(buttonPin); // состояние кнопки
	if(val == HIGH) // включаем светодиод
	{
		digitalWrite(led, HIGH);
	}
	else
	{
		digitalWrite(led,LOW);
	}
}

Примеры

Примеры с кнопкой

Реклама