Считывание нажатия кнопки
Часть раздела Первые схемы путешествия по Arduino на Coddy. Урок 22 из 22.
Вывод также может быть входом: плата считывает, имеет ли он значение HIGH или LOW.
Эта кнопка соединяет вывод 2 с землёй (0 вольт), пока ты её удерживаешь. Когда она отпущена, вывод ни с чем не соединён и может считывать случайные значения. INPUT_PULLUP включает подтягивающий резистор внутри платы, который удерживает вывод в состоянии HIGH, пока кнопка не переведёт его в LOW:
pinMode(2, INPUT_PULLUP);digitalRead(2) возвращает уровень вывода. При использовании подтягивающего резистора нажатая кнопка считывается как LOW:
if (digitalRead(2) == LOW) {
// кнопка нажата
}Остальное тебе уже знакомо: if и else для выбора, digitalWrite() для светодиода, Serial.println() для вывода сообщения.
Задание
ЛегкоКнопка подключена к контакту 2, а светодиод — к контакту 13. Зажигай светодиод, пока кнопка нажата:
- установи для контакта 2 режим
INPUT_PULLUP - если
digitalRead(buttonPin)равноLOW, включи светодиод, выведиPressedи подожди 200 мс (чтобы монитор не переполнялся) - иначе выключи светодиод
Нажми Run, удерживай зелёную кнопку на плате, затем нажми Check.
Попробуйте сами
const int buttonPin = 2;
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Первые схемы
Потренируйтесь самостоятельно: Песочница Arduino