Menu
CoddyTech

Подсчёт нажатий кнопки

Часть раздела Входные сигналы путешествия по Arduino на Coddy. Урок 5 из 22.

Фронт сигнала из предыдущего урока может запускать любое действие, которое должно происходить один раз при каждом нажатии. Здесь он увеличивает счётчик на единицу с помощью ++ из урока «Подсчёт вверх»:

int presses = 0;

void loop() {
  int reading = digitalRead(2);
  if (reading == LOW && lastReading == HIGH) {
    presses++;
    Serial.println(presses);
  }
  lastReading = reading;
}

presses находится выше setup(), как и lastReading, поэтому сохраняет своё значение между запусками loop().

Вывод находится внутри if, поэтому число появляется только при изменении счётчика: 1, 2, 3. Вне if одно и то же значение счётчика выводилось бы тысячи раз в секунду.

challenge icon

Задание

Легко

Кнопка подключена к пину 2 (INPUT_PULLUP). Считай количество нажатий:

  • храни количество в presses, объявленной выше setup()
  • когда кнопка нажимается, прибавь единицу и выведи количество

Нажми Run, нажми кнопку несколько раз и следи за монитором Serial, затем нажми Check.

Попробуйте сами

const int buttonPin = 2;

int lastReading = HIGH;

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  int reading = digitalRead(buttonPin);
  // когда кнопка нажимается, увеличь счётчик и выведи его значение
  lastReading = reading;
}
quiz iconПроверьте себя

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

Все уроки раздела Входные сигналы

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