Menu
CoddyTech

Обратный отсчёт до нуля

Часть раздела Дисплеи и датчики путешествия по Arduino на Coddy. Урок 4 из 24.

Как и при перемещении сервопривода, цикл for может отсчитывать в обратном порядке: начать с большого числа, продолжать, пока число не меньше 0, и каждый раз отнимать единицу с помощью n--:

for (int n = 5; n >= 0; n--) {
  showDigit(n);
  delay(1000);
}

На дисплее по очереди отображаются 5, 4, 3, 2, 1 и 0. Если использовать n > 0, отсчёт остановится на 1, и 0 никогда не отобразится.

Обратный отсчёт должен выполняться один раз, а не снова и снова. Код в setup() выполняется один раз, поэтому поместите туда обратный отсчёт и код того, что должно произойти после достижения 0. loop() может оставаться пустой, и на дисплее останется 0.

challenge icon

Задание

Легко

Зуммер подключён к контакту 9. Сделай обратный отсчёт перед запуском:

  • в setup() считай от 5 до 0, по одному числу в секунду
  • при 0 включи зуммер с помощью tone(buzzerPin, 880, 1000)
  • оставь 0 на дисплее

Нажми Run, затем Check.

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

const int segmentPins[7] = {2, 3, 4, 5, 6, 7, 8};  // a, b, c, d, e, f, g

// Один шаблон на цифру; читайте справа налево: последний бит соответствует сегменту a.
//                     gfedcba
const byte digits[10] = {
  0b0111111,  // 0
  0b0000110,  // 1
  0b1011011,  // 2
  0b1001111,  // 3
  0b1100110,  // 4
  0b1101101,  // 5
  0b1111101,  // 6
  0b0000111,  // 7
  0b1111111,  // 8
  0b1101111   // 9
};

void showDigit(int n) {
  for (int i = 0; i < 7; i++) {
    if (bitRead(digits[n], i) == 1) {
      digitalWrite(segmentPins[i], LOW);   // горит
    } else {
      digitalWrite(segmentPins[i], HIGH);  // не горит
    }
  }
}

const int buzzerPin = 9;

void setup() {
  for (int i = 0; i < 7; i++) {
    pinMode(segmentPins[i], OUTPUT);
  }

  // здесь выполните обратный отсчёт от 5 до 0, затем включите зуммер
}

void loop() {
}
quiz iconПроверьте себя

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

Все уроки раздела Дисплеи и датчики

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