Menu
CoddyTech

Считывание нажатия кнопки

Часть раздела Первые схемы путешествия по 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() для вывода сообщения.

challenge icon

Задание

Легко

Кнопка подключена к контакту 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() {

}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Первые схемы

Потренируйтесь самостоятельно: Песочница Arduino