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