7-сегментные дисплеи: руководство по распиновке и применению

Содержание

Что такое 7-сегментный дисплей?

7-сегментный дисплей — это электронный компонент, состоящий из 7 отдельных светодиодов, расположенных в определенном порядке для отображения цифр (0–9) и некоторых букв. Эти светодиоды обозначены буквами a, b, c, d, e, f, g, а дисплей обычно включает в себя дополнительную десятичную запятую (dp).

128 variations of 7 segment display
128 variations of 7 segment display
7 segment display animation in variable arabic numerals and characters
7-segment display animation

В соответствии с различными комбинациями и сочетаниями существует 128 вариантов (арабские цифры и символы) для 7-сегментного дисплея.

Распиновка 7-сегментного дисплея

Распиновка 7-сегментного дисплея зависит от его типа, который в основном делится на две категории: с общим анодом и с общим катодом.

7 segment display pinout
7-segment display pinout

Конфигурация выводов

Ниже приведен пример распределения выводов для типичного 7-сегментного дисплея (обратите внимание, что фактическое распределение выводов может отличаться в зависимости от производителя и модели):

Общий анод:

Все аноды (положительные) 7-сегментного дисплея соединены между собой, и когда катод опускается, соответствующий светодиод загорается.

Common anode 7 segment display
Common anode 7-segment display
  • g, f, a, b, e, d, c, dp: это контакты сегментов, соответствующие семи сегментам и десятичной запятой соответственно.
  • COM: общий анодный контакт, подключенный к VCC.

Общий катод:

Все катоды (отрицательные) 7-сегментного дисплея соединены между собой, и когда анод (положительный) подтягивается вверх, соответствующий светодиод загорается.

Common cathode 7 segment display
Common cathode 7-segment display

Аналогично, выводы сегментов (g, f, a, b, e, d, c, dp) соответствуют сегментам и десятичной запятой, но вывод общего катода (COM) подключен к GND.

Подключение 7-сегментного дисплея

Для работы 7-сегментного дисплея отдельные сегменты (a, b, c, d, e, f, g, dp) должны быть подключены к определенным выходам микроконтроллера. Например, для 7-сегментного дисплея с общим катодом отрицательный конец каждого сегмента подключается к общему выводу заземления, а положительный конец каждого сегмента подключается к разным выходам микроконтроллера.

Базовая настройка проводки

  • 7-сегментный дисплей имеет 8 выводов (7 для сегментов и 1 для десятичной точки).
  • Каждый вывод, соответствующий сегменту (от a до g), подключен к микроконтроллеру.
  • Для конфигурации с общим катодом подключите вывод общего катода к земле.

Пример подключения к Arduino

При подключении 7-сегментного дисплея к Arduino сегментные выводы обычно подключаются к разным цифровым выводам на плате Arduino. Например, в конфигурации с общим анодом сегментные выводы могут быть подключены следующим образом:

  • a — вывод 7 Arduino
  • b — контакт Arduino 8
  • c — контакт Arduino 4
  • d — контакт Arduino 3
  • e — контакт Arduino 2
  • f — контакт 6 Arduino
  • g — контакт 5 Arduino
  • COM — контакт 9 Arduino (подключен к VCC)

В этой конфигурации для подсветки определенного сегмента соответствующий контакт Arduino устанавливается в положение LOW, а общий анодный контакт остается в положении HIGH.

Как управлять 7-сегментным дисплеем

Ключом к управлению 7-сегментным дисплеем является подача правильного напряжения на отдельные сегменты для формирования желаемого числа или символа.

Отображение чисел

Чтобы отобразить число, микроконтроллер должен включить соответствующие сегменты. Например:

  • Для отображения 0 должны светиться сегменты a, b, c, d, e и f, а сегмент g должен оставаться выключенным.
Digital encoding for 7 segment display
Digital encoding for 7-segment display

Необходимые компоненты

Подобно светодиодной матрице, этот проект потребует значительного количества проводов и резисторов. Поскольку каждый светодиод нуждается в собственном резисторе для предотвращения перегорания, убедитесь, что у вас есть достаточное количество резисторов. Для всего проекта вам понадобятся следующие компоненты:

  • Arduino Uno
  • Arduino IDE
  • Семисегментный дисплей
  • Электрические провода
  • 8 резисторов 220 Ом
  • Макетная плата
  • USB-кабель

Пример кода для отображения чисел

				
					int pin_a = 7, pin_b= 6, pin_c = 5, pin_d = 10, pin_e = 11, pin_f = 8, pin_g = 9, pin_p = 4;

// Segment data for digits 0-9
int numTable[10][8] = {
  {1, 1, 1, 1, 1, 1, 0, 0}, // 0
  {0, 1, 1, 0, 0, 0, 0, 0}, // 1
  {1, 1, 0, 1, 1, 0, 1, 0}, // 2
  {1, 1, 1, 1, 0, 0, 1, 0}, // 3
  {0, 1, 1, 0, 0, 1, 1, 0}, // 4
  {1, 0, 1, 1, 0, 1, 1, 0}, // 5
  {1, 0, 1, 1, 1, 1, 1, 0}, // 6
  {1, 1, 1, 0, 0, 0, 0, 0}, // 7
  {1, 1, 1, 1, 1, 1, 1, 0}, // 8
  {1, 1, 1, 1, 0, 1, 1, 0}, // 9
};

void setup(){
  for (int i = 4; i <= 11; i++){
    pinMode(i, OUTPUT);
  }
}

void loop(){
  for (int i = 0; i < 10; i++){
    digitalWrite(pin_a, numTable[i][0]);
    digitalWrite(pin_b, numTable[i][1]);
    digitalWrite(pin_c, numTable[i][2]);
    digitalWrite(pin_d, numTable[i][3]);
    digitalWrite(pin_e, numTable[i][4]);
    digitalWrite(pin_f, numTable[i][5]);
    digitalWrite(pin_g, numTable[i][6]);
    digitalWrite(pin_p, numTable[i][7]);
    delay(1000);
  }
}

				
			

В этом примере массив numTable хранит данные, необходимые для включения соответствующих сегментов для каждой цифры.

Многозначные 7-сегментные дисплеи Проекты

Для многозначных дисплеев самым простым способом управления несколькими 7-сегментными дисплеями является мультиплексирование, другой способ — библиотека Arduino.

Техника мультиплексирования

При мультиплексировании несколько дисплеев используют один и тот же набор управляющих выводов, и каждый дисплей включается последовательно. Это происходит настолько быстро, что человеческий глаз воспринимает все цифры как светящиеся одновременно.

Пример кода для мультиплексирования 7-сегментных дисплеев

				
					const int digitPins[3] = {2, 3, 4}; // Digit selection pins
const int segmentPins[8] = {6, 7, 8, 9, 10, 11, 12, 13}; // Segment pins
int numTable[10][8] = { {0, 0, 0, 0, 0, 0, 1, 1}, {1, 0, 0, 1, 1, 1, 1, 1}, ... };

void setup(){
  for (int i = 2; i <= 4; i++) {
    pinMode(i, OUTPUT);
    digitalWrite(i, LOW);
  }
  for (int i = 6; i <= 13; i++) {
    pinMode(i, OUTPUT);
    digitalWrite(i, HIGH);
  }
}

void loop(){
  for (int i = 0; i < 10; i++){
    for (int j = 0; j < 3; j++) {
      showdigit(i, j);
    }
    delay(500);
  }
}

void showdigit(int num, int digit){
  digitalWrite(digitPins[digit], HIGH);
  for (int i = 0; i < 8; i++) {
    digitalWrite(segmentPins[i], numTable[num][i]);
  }
  delay(500);
  digitalWrite(digitPins[digit], LOW);
}

				
			

Использование библиотек для управления 7-сегментными дисплеями

Для удобства доступны библиотеки, такие как SevSeg, которые упрощают управление 7-сегментными дисплеями. Эта библиотека полезна для управления многозначными дисплеями, поскольку она абстрагирует большую часть сложной схемы подключения и логики управления.

Мы можем найти и установить SevSeg через меню Arduino: Tools >> Manage Libraries (Инструменты >> Управление библиотеками).

Install SevSeg library on Arduino
Install SevSeg library on Arduino

Пример кода с использованием библиотеки SevSeg

				
					#include "SevSeg.h"
SevSeg sevseg;

void setup() {
  sevseg.begin(COMMON_CATHODE, 3, digitPins, segmentPins);
}

void loop() {
  int readValue = analogRead(A0);
  int showValue = map(readValue, 0, 1023, 0, 999);
  sevseg.setNumber(showValue, 3);
  sevseg.refreshDisplay();
}

				
			

Применение 7-сегментных дисплеев

Благодаря своей простоте, удобству использования и низкой стоимости, 7-сегментный дисплей широко используется в различных приложениях, таких как:

  • Электронные часы: отображение времени и даты;
  • Калькуляторы: отображение результатов вычислений;
  • Бытовая техника: дисплеи для таких продуктов, как микроволновые печи, кондиционеры и стиральные машины;
  • Приборные панели автомобилей: отображение информации, такой как скорость и пробег;
  • Промышленное оборудование: отображение показаний таких устройств, как регуляторы температуры и манометры;
  • Лабораторные приборы: отображение экспериментальных данных и результатов;
  • Потребительская электроника: дисплей регулировки громкости на аудиооборудовании.

Заключение

7-сегментные дисплеи — это универсальные компоненты, которые позволяют легко отображать числовые данные. Понимание их подключения, методов управления и применения может значительно улучшить функциональность ваших проектов, от простых часов до сложных дисплеев. Независимо от того, используете ли вы мультиплексирование, библиотеки или сдвиговые регистры, существует множество способов эффективного управления 7-сегментными дисплеями, каждый из которых подходит для различных требований проекта.

Подписаться

Присоединяйтесь к нашему списку подписчиков, чтобы получать ежемесячные обновления блога, новости о технологиях, практические примеры. Мы никогда не будем рассылать спам, и вы можете отказаться от подписки в любое время.

Об авторе

Picture of Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

Поделиться

Рекомендуемый пост

Tags

Нужна помощь?

Прокрутить вверх

Instant Quote