В этом эксперименте мы сделаем светодиод, управляемый кнопкой: при нажатии на кнопку светодиод будет зажигаться, при отпускании – гаснуть.
До этого момента мы использовали цифровой порт лишь для вывода (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 любое количество кнопок и многие особенности работы с кнопками.