Общий анод: логика наоборот

COM на 5 В, и сегмент горит от LOW. Обратный отсчёт с мигающей точкой — та же таблица цифр, только каждый бит инвертирован.

Средний уровень Arduino Uno C++
Схема подключения: Общий анод: логика наоборот
Схема в симуляторе. Нажмите «Открыть в симуляторе», чтобы запустить её и поменять.

Что понадобится

Как подключить

ОткудаКуда
Arduino UnoD2→Резистор 11
Резистор 12→Семисегментный индикаторA
Arduino UnoD3→Резистор 21
Резистор 22→Семисегментный индикаторB
Arduino UnoD4→Резистор 31
Резистор 32→Семисегментный индикаторC
Arduino UnoD5→Резистор 41
Резистор 42→Семисегментный индикаторD
Arduino UnoD6→Резистор 51
Резистор 52→Семисегментный индикаторE
Arduino UnoD7→Резистор 61
Резистор 62→Семисегментный индикаторF
Arduino UnoD8→Резистор 71
Резистор 72→Семисегментный индикаторG
Arduino UnoD9→Резистор 81
Резистор 82→Семисегментный индикаторDP
Семисегментный индикаторCOM.1→Arduino Uno5V

Скетч

// Индикатор с общим анодом: COM на 5 В, сегмент горит, когда на его
// выводе LOW. Поэтому бит цифры перед записью инвертируется.
// Сегменты A…G — D2…D8, точка DP — D9.
const int SEG[7] = { 2, 3, 4, 5, 6, 7, 8 };
const int DP = 9;

const byte DIGITS[10] = {
  0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F
};

void showDigit(int n, bool dot) {
  for (int s = 0; s < 7; s++) {
    bool on = (DIGITS[n] >> s) & 1;
    digitalWrite(SEG[s], on ? LOW : HIGH);
  }
  digitalWrite(DP, dot ? LOW : HIGH);
}

void setup() {
  for (int s = 0; s < 7; s++) pinMode(SEG[s], OUTPUT);
  pinMode(DP, OUTPUT);
}

void loop() {
  for (int n = 9; n >= 0; n--) {
    showDigit(n, true);
    delay(500);
    showDigit(n, false);
    delay(500);
  }
}

Коротко о детали: Семисегментный индикатор

Цифра из семи светодиодов-сегментов (A–G) и точки DP. У каждого сегмента свой вывод, а вторые концы всех сегментов собраны в общий вывод COM. Общий катод (по умолчанию) — COM на землю, сегмент горит от HIGH; общий анод — COM на питание, сегмент горит от LOW. Тип и цвет задаются двойным кликом. Каждому сегменту нужен свой резистор 220–330 Ом.

Распиновка и все примеры →

Ещё примеры с деталью «Семисегментный индикатор»

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

Симулятор работает прямо в браузере: схему можно менять, код — править, а результат видно сразу. Бесплатно, без установки и регистрации.

Открыть «Общий анод: логика наоборот» в симуляторе