Урок 17: Одноразрядный 7-сегментный индикатор

1. Задача эксперимента

  • освоить 7-сегментный индикатор общего катода;

  • выводить цифры 0 … 9, включая нужные сегменты;

  • понять разницу между схемами «общий катод» и «общий анод».

2. Необходимое оборудование

Кол-во

Деталь

1

Плата Arduino UNO

1

7-сегментный индикатор (общий катод)

8

Резистор 220 Ω

1

Макетная плата (breadboard)

Перемычки «папа-папа»

1

USB-кабель A-B

3. Внешний вид и принцип работы

7-segment LED (CC)

7-segment LED (CC)

CC vs CA

Общий катод (CC) vs общий анод (CA)

  • Сегменты a … g образуют цифру; «dp» — десятичная точка.

  • Общий катод (CC): общий вывод → GND, HIGH → сегмент светится.

  • Общий анод (CA): общий вывод → +5 V, LOW → сегмент светится.

В уроке используется общий катод: COM → GND, каждый сегмент через резистор к отдельному пину Arduino.

4. Схема подключения

Подключение сегментов a–g, dp к D4–D11; COM → GND

Все номера выводов подписаны на рисунке; следуйте схеме при сборке. Каждый сегмент обязательно подключайте через резистор 220 Ω.

5. Пример кода

sevenseg_cycle.ino
/* 7-segment, common cathode.  © Alash Electronics */
const byte segPins[8] = {7, 6, 5, 10, 11, 8, 9, 4};   // a b c d e f g dp

const byte digits[10] = {
  0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110,
  0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01101111
};

void setup() {
  for (byte i = 0; i < 8; i++) pinMode(segPins[i], OUTPUT);
}

void loop() {
  for (byte n = 0; n < 10; n++) {     // выводим 0-9
    showDigit(n);
    delay(1000);
  }
}

void showDigit(byte n) {
  byte pat = digits[n];
  for (byte i = 0; i < 7; i++)
    digitalWrite(segPins[i], pat & (1 << i) ? HIGH : LOW);
  digitalWrite(segPins[7], LOW);      // точка всегда погашена
}

6. Что может пойти не так

Симптом

Причина

Решение

Индикатор тёмный

COM не на GND

Проверьте общий катод

Цифра неверная

Провода a…g подключены иначе

Исправьте массив segPins или перекоммутируйте

Очень тускло

Резисторы слишком большие

Используйте 220 Ω и питание 5 V

7. Эксперименты

  • Включите точку «dp», выводя «7.» «8.» …

  • Поставьте два индикатора и мультиплексируйте разряды.

  • Управляйте сегментами через 74HC595 (экономия пинов).