Menu
CoddyTech

Двоичный счётчик на светодиодах

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

Четыре светодиода могут отображать любое число от 0 до 15 в двоичной системе счисления — так компьютеры хранят числа. Каждый светодиод представляет разряд, значение которого вдвое больше предыдущего: 1, 2, 4 и 8. Горящий светодиод добавляет своё значение:

  • 5 — это 4 + 1: горят светодиоды со значениями 4 и 1
  • 10 — это 8 + 2
  • 15 — это все четыре

Каждый разряд называется битом. Нумерация начинается с 0 — это разряд со значением 1. bitRead(number, n) возвращает бит n числа: 1 или 0:

bitRead(5, 0);  // 1: в 5 есть 1
bitRead(5, 1);  // 0: в 5 нет 2
bitRead(5, 2);  // 1: в 5 есть 4

Поскольку 1 — это HIGH, а 0 — LOW, бит i можно напрямую передать светодиоду i:

for (int i = 0; i < 4; i++) {
  digitalWrite(ledPins[i], bitRead(count, i));
}

Здесь ledPins[0], контакт 2, — это светодиод справа со значением 1, как последняя цифра числа.

challenge icon

Задание

Средне

Заставь четыре светодиода считать в двоичном формате:

  • начни с count, равного 0
  • отобрази его на светодиодах с помощью bitRead(): бит i на ledPins[i]
  • подожди 250 мс, прибавь 1 и после 15 начни снова с 0

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

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

int ledPins[] = {2, 3, 4, 5};  // соответствуют значениям 1, 2, 4, 8
int count = 0;

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

void loop() {
  // отобразить count в двоичном виде, подождать 250 мс, затем увеличить count (после 15 вернуться к 0)
}
quiz iconПроверьте себя

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

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

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