Эксперимент № 6. Светодиод, управляемый кнопкой

В этом эксперименте мы сделаем светодиод, управляемый кнопкой: при нажатии на кнопку светодиод будет зажигаться, при отпускании – гаснуть.

До этого момента мы использовали цифровой порт лишь для вывода (OUTPUT), т.е. мы подавали на него высокий сигнал, чтобы зажечь светодиод, и низкий, чтобы погасить. Но каждый цифровой порт может работать в двух основных режимах – вывод (OUTPUT) и ввод (INPUT).

Теперь 1й порт мы будем использовать для вывода, и к нему мы подключим светодиод, а 2й порт – для ввода, и к нему мы подключим кнопку, с помощью которой мы и будем управлять светодиодом.

Необходимые компоненты

Итак, нам понадобится:

  • 1  светодиод
  • 1 резистор 220 Ом
  • 1 резистор 10 КОм
  • 1 простая тактовая кнопка

Схема

Соберем такую схему:

Как всегда, светодиод надо защитить резистором 220 Ом и не перепутать контакты.

Обратите внимание, что для правильной работы кнопки мы притягиваем ее контакт, который подключается к порту, т.е. замыкаем на землю (GDN), через сопротивление 10K. Такое сопротивление называется «стягивающим» или «подтягивающим вниз». Это нужно для того, что в исходном состоянии гарантировать на входе низкий сигнал. В нашем случае низкий сигнал соответствует отжатой кнопкой и выключенному состоянию светодиода.

Скетч

/**
 * (C) jarduino.ru 2019
 * Изучение ардуино через опыты.
 *
 * Эксперимент №6. Светодиод, управляемый кнопкой.
 * Светодиод горит, если кнопка нажата.
 */

int pinLed = 11; // Порт для подключения светодиода
int pinBtn = 7; // Порт для подключения кнопки

void setup()
{
	pinMode(pinLed, OUTPUT); // Порт светодиода включить на вывод
	pinMode(pinBtn, INPUT); // Порт кнопки включить на ввод
}

void loop()
{
	int btnVal; // переменная для чтения занчения с кнопки
	btnVal = digitalRead(pinBtn); // считать значение с пина кнопки

	if (btnVal == LOW) // Проверить, нажата ли кнопка
	{
		digitalWrite(pinLed, LOW); // Кнопка не нажата - выключить светодиод
	}
	else
	{
		digitalWrite(pinLed, HIGH); // Кнопка нажата - включить светодиод
	}
}

Результат

  • Нажмите на кнопку и светодиод загорится.

Заключение

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

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