7 сегментный дисплей: особенности и применение

Подключение

Сначала установим индикаторы и драйверы на breadboard. У всех них ноги располагаются с двух сторон, поэтому, чтобы не закоротить противоположные контакты, размещать эти компоненты необходимо над центральной канавкой breadboard’а. Канавка разделяет breadboard на 2 несоединённые между собой половины.

Далее, подключим один из драйверов в соответствии с его распиновкой

  • 16 — к рельсе питания: это питание для микросхемы
  • 2 «disable clock» — к рельсе земли: мы его не используем
  • 3 «enable display» — к рельсе питания: это питание для индикатора
  • 8 «0V» — к рельсе земли: это общая земля
  • 1 «clock» — через к земле. К этому контакту мы позже подведём сигнал с Arduino. Наличие резистора полезно, чтобы избежать ложного срабатывания из-за окружающих помех пока вход ни к чему не подключен. Подходящим номиналом является 10 кОм. Когда мы соединим этот контакт с выходом Arduino, резистор не будет играть роли: сигнал притянет к земле микроконтроллер. Поэтому если вы знаете, что драйвер при работе всегда будет соединён с Arduino, можете не использовать резистор вовсе.
  • 15 «reset» и 5 «÷10» пока оставим неподключенными, но возьмём на заметку — нам они понадобятся в дальнейшем

Контакты 3 и 8 на индикаторе обозначены как «катод», они общие для всех сегментов, и должны быть напрямую соединены с общей землёй.

Далее следует самая кропотливая работа: соединение выходов микросхемы с соответствующими анодами индикатора. Соединять их необходимо через как и обычные светодиоды. В противном случае ток на этом участке цепи будет выше нормы, а это может привести к выходу из строя индикатора или микросхемы. Номинал 220 Ом подойдёт.

Соединять необходимо сопоставляя распиновку микросхемы (выходы a-g) и распиновку индикатора (входы a-g)

Повторяем процедуру для второго разряда

Теперь вспоминаем о контакте «reset»: нам необходимо соединить их вместе и притянуть к земле через стягивающий резистор. В последствии, мы подведём к ним сигнал с Arduino, чтобы он мог обнулять значение целиком в обоих драйверах.

Также подадим сигнал с «÷10» от правого драйвера на вход «clock» левого. Таким образом мы получим схему, способную отображать числа с двумя разрядами.

Стоит отметить, что «clock» левого драйвера не стоит стягивать резистором к земле, как это делалось для правого: его соединение с «÷10» само по себе сделает сигнал устойчивым, а притяжка к земле может только нарушить стабильность передачи сигнала.

Железо подготовленно, осталось реализовать несложную программу.

Flicker-free 7-segment display

Figure 6. By using a 4511 latch per display a flicker-free display is possible.

Figure 5 shows how to use a 4511 latch per digit. In this case the data for each digit is set up in turn on D0 to D3 and the digit’s /LE (latch enable) pin is pulled low. The seven-segment display will immediately update and will be latched when the /LE pin is pulled high again. This, for example, would allow the micro to handle other tasks without having to update the display until required. The D0 to D3 IO pins could even be used as inputs with suitable input resistors while the diplay update is not required.

Note that the display decimal points are not controlled by the 4511. This leaves the designer with several options:

  • No decimal point.
  • A fixed decimal point by wiring one of the DP pins to Vss.
  • Program controlled decimal point. This will require one extra controller output pin per decimal point.

Семисегментный индикатор. Принцип работы.

Что в целом из себя представляет семисегментный индикатор? Идея тут проста – просто упорядоченный набор светодиодов. Причем упорядоченность касается их физического расположения друг относительно друга:

Каждый из светодиодов представляет из себя отдельный сегмент, соответственно, имеем как раз 7 сегментов. При этом каждому сегменту ставится в соответствие условное буквенное обозначение – a, b, c и т. д. Поместим все это в пластиковый корпус и, наклеив наклейку, получаем законченный компонент:

Включая определенный набор диодов, можем получить наглядное отображение информации, к примеру, в виде цифры 7:

Аналогичным образом и для любой другой цифры:

Или для любого символа, варианты ограничены только количеством сегментов, конкретной целью и фантазией:

Помимо этих семи сегментов почти всегда присутствует еще один, отвечающий за отображение точки:

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

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

Как проверить семисегментный индикатор

У нас имеются в наличии вот такие индикаторы:

Для того, чтобы проверить современный семисегментный индикатор, нам достаточно мультиметра с функцией прозвонки диодов. Для начала ищем общий вывод — это может быть или ОА или ОК.  Здесь только методом тыка.  Ну а далее проверяем работоспособность остальных сегментов индикатора по схемам выше.

Как вы видите ниже на фото, у нас загорелся проверяемый сегмент. Таким же образом проверяем и другие сегменты. Если все сегменты горят, то такой индикатор целый и его можно использовать в своих разработках.

Иногда напряжения на мультиметре не хватает для проверки сегмента. Поэтому, берем блок питания, и выставляем на нем 5 Вольт. Чтобы ограничить ток через сегмент, проверяем через резистор на 1-2 Килоома.

Таким же образом проверяем индикатор от китайского приемника

В схемах семисегментные индикаторы  соединяются с резисторами на каждом выводе

В нашем современном мире семисегментные индикаторы заменяются жидко-кристаллическими индикаторами, которые могут высвечивать абсолютно любую информацию

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

Подключение семисегментного индикатора.

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

И с общим катодом:

Управление тогда будет выглядеть следующим образом, для общего анода:

  • подаем на общий вывод (аноды) положительное напряжение
  • катоды же нужных сегментов заземляем

Для общего катода то же самое, за исключением полярности:

  • подаем на общий вывод (катоды) 0 В
  • а на аноды сегментов положительное значение напряжения

Естественно, нужно учесть параметры конкретных диодов в конкретном же используемом индикаторе. Допустим, из документации узнаем, что прямой ток диодов – 20 мА при напряжении на диоде 2 В. При осуществлении управления напрямую с вывода микроконтроллера, например STM32, напряжение будет составлять 3.3 В, что очевидно не равно требуемым 2 В. Поэтому в цепь добавляется резистор:

И номинал его рассчитывается следующим образом. Напряжение на диоде должно быть равно 2 В, с порта контроллера имеем 3.3 В, значит избыточные 1.3 В должны упасть именно на резисторе.

При этом ток через диод, а вместе с ним и ток через резистор, составит 20 мА. Поэтому по закону Ома спокойно рассчитываем необходимое значение сопротивления:

R = \frac{U_R}{I_R} = \frac{1.3 \medspace В}{20 \medspace мА} = 65 \medspace Ом

На этом расчетная деятельность закончена.

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

Семисегментные индикаторы

С появлением светодиодов ситуация кардинально изменилась в лучшую сторону. Светодиоды сами по себе потребляют маленький ток. Если расставить их в нужном положении, то можно высвечивать абсолютно любую информацию. Для того, чтобы высветить все арабские цифры, достаточно всего семь светящихся светодиодных полос — сегментов, выставленных определенным образом:

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

12 недорогих наборов электроники для самостоятельной сборки и пайки

Моя личная подборка конструкторов с Aliexpress “сделай сам” для пайки от простых за 153 до 2500 рублей. Дочке 5 лет – надо приучать к паяльнику))) – пусть пока хотя-бы смотрит – переходи посмотреть, один светодиодный куб чего только стоит

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

Что получается в итоге? Каждая полоска на семисегментном индикаторе засвечивается светодиодом или группой светодиодов. В результате, засветив определенные сегменты, мы можем вывести цифру от 0 и до 9, а также буквы и символы.

2Подключение 7-сегментного индикатора непосредственно к Arduino

Мы можем подключить индикатор прямо к выводам Arduino. Для этого придётся задействовать сразу 7 ножек (или 8, если нужна десятичная точка)

Обратим внимание, что индикатор 3361AS не имеет токоограничивающих резисторов. Необходимо обеспечить наличие сопротивления номиналом около 180…220 Ом на каждый вывод индикатора (т.к

питание подаём +5 В от Arduino).

Электрическая схема 7-сегментного индикатора 3361AS

Расположение выводов индикатора показано на иллюстрации:

Размеры корпуса и расположение выводов 7-сегментного индикатора 3361AS

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

Вывод индикатора 3361AS Назначение Вывод Arduino
1 Сегмент E D6
2 Сегмент D D5
3 DP D9
4 Сегмент C D4
5 Сегмент G D8
7 Сегмент B D3
8 Выбор 3-го разряда 5V
9 Выбор 2-го разряда 5V
10 Сегмент F D7
11 Сегмент A D2
12 Выбор 1-го разряда GND

Напишем скетч, который последовательно выводит числа от 0 до 9 на первом разряде индикатора.

Скетч управления индикатором 3361AS (разворачивается)

const int A = 2;
const int B = 3;
const int C = 4;
const int D = 5;
const int E = 6;
const int F = 7;
const int G = 8;
const int DP = 9;

void setup() {
  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(E, OUTPUT);
  pinMode(F, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(DP, OUTPUT);
}

void loop() {
  for (int i=0; i<=9; i++){
    printNumber(i);
    delay(1000);
  }
}

// зажигает на 7-сегментном индикаторе заданную цифру
void printNumber(int num){
  int numbers = { // многомерный массив, в котором описаны состояния сегментов A…G и DP для цифр от 0 до 9
    {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 
  };
  lightSegments(numbers);
}

// зажигает заданные сегменты
void lightSegments(int segments[]){
  digitalWrite(A, segments);
  digitalWrite(B, segments);
  digitalWrite(C, segments);
  digitalWrite(D, segments);
  digitalWrite(E, segments);
  digitalWrite(F, segments);
  digitalWrite(G, segments);
  digitalWrite(DP, segments);
}

Небольшое пояснение по поводу массива numbers[] в функции printNumber(). Этот массив состоит из 10-ти подмассивов, каждый из которых определяет одну цифру от 0 до 9. В свою очередь подмассивы состоят из 8-ми элементов, которые задают состояния сегментов от A до G и DP. Например, первый подмассив описан как {1,1,1,1,1,1,0,0} и он отвечает за вывод на индикатор нуля. Это означает, что сегменты A,B,C,D,E,F должны гореть, а сегменты G и DP – нет.

В результате получаем примерно следующее:

Управление 7-сегментным индикатором с помощью Arduino Nano

И вот так в динамике:

Это самый простой способ управления сегментным индикатором, но, как мы видим, он задействует почти все цифровые ножки Arduino. Особенно если мы решим использовать все разряды индикатора. Тогда кроме ножек для управления сегментами придётся дополнительно использовать столько выводов, сколько разрядов у индикатора. Получится, что для управления 7-сегментным индикатором с 3-мя разрядами необходимо 11 ножек (7 сегментов + 1 десятичная точка + 3 ножки для выбора разряда). Это расточительно, и не всегда можно такое себе позволить.

Создание программируемого вручную светодиодного дисплея

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

Схема подключения выглядит сложной, но на самом деле все очень просто. Достаточно следовать расположению компонентов, показанных на картинке ниже. Схема питается от 9-вольтовой батареи. Ее ток проходит через семь защитных резисторов, на этот раз номиналом 470 Ом. Затем следуют переключатели, которые управляют одним сегментом дисплея.

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

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

  • батарея 9 В;
  • 7 резисторов 220 Ом;
  • 21 обычный красный светодиод.

На практике требуется огромный дисплей с тремя светодиодами в каждом сегменте, всего 21 светящийся компонент. Светодиоды можно устанавливать на картонные, деревянные или пластиковые подставки. С лицевой стороны должны быть видны только головки светодиодов, а соединения должны быть спрятаны в задней части конструкции.

Реализация такого дисплея довольно проста

Нужно лишь уделить самое пристальное внимание правильности всей системы электропроводки и проектированию конструкции:

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

7-сегментные дисплеи представляют собой светящиеся устройства, способные отображать цифры от 0 до 9 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) и некоторые графические и буквенные символы.

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

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

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

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

  • Цифра 0: клеммы a, b, c, d, e, f;
  • Цифра 1: клеммы b, c;
  • Цифра 2: клеммы a, b, d, e, g;
  • Цифра 3: клеммы a, b, c, d, g;
  • Цифра 4: клеммы b, c, f, g;
  • Цифра 5: клеммы a, c, d, f, g;
  • Цифра 6: клеммы a, c, d, e, f, g;
  • Цифра 7: клеммы a, b, c;
  • Цифра 8: клеммы a, b, c, d, e, f, g;
  • Цифра 9: клеммы a, b, c, d, f, g.

Другие буквы, которые можно составить: A, b, C, d, E, F. Некоторые должны быть прописными, другие строчными. В конечном итоге доступно только семь световых сегментов.

Программирование

7segment.pde
#define CLOCK_PIN 2

#define RESET_PIN 3

/*
* Функция resetNumber обнуляет текущее значение
* на счётчике
*/

void
resetNumber()

{

// Для сброса на мгновение ставим контакт

// reset в HIGH и возвращаем обратно в LOW

digitalWrite(RESET_PIN,
HIGH)
;

digitalWrite(RESET_PIN,
LOW)
;

}

/*
* Функция showNumber устанавливает показания индикаторов
* в заданное неотрицательное число `n` вне зависимости
* от предыдущего значения
*/

void
showNumber(int
n)

{

// Первым делом обнуляем текущее значение

resetNumber()
;

// Далее быстро «прокликиваем» счётчик до нужного

// значения

while
(n–
)
{

digitalWrite(CLOCK_PIN,
HIGH)
;

digitalWrite(CLOCK_PIN,
LOW)
;

}

}

void
setup()

{

pinMode(RESET_PIN,
OUTPUT)
;

pinMode(CLOCK_PIN,
OUTPUT)
;

// Обнуляем счётчик при старте, чтобы он не оказался

// в случайном состоянии

resetNumber()
;

}

void
loop()

{

// Получаем количество секунд в неполной минуте

// с момента старта и выводим его на индикаторы

showNumber((millis()
/
1000
)
%
60
)
;

delay(1000
)
;

}

Разница между 7-сегментным дисплеем с общим анодом и общим катодом

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

Однако важно понимать разницу между 7-сегментными дисплеями с общим анодом и общим катодом, чтобы правильно их использовать

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

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

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

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

2. Обратитесь к таблице данных: если вы не можете визуально идентифицировать анод и катод, вы можете найти таблицу данных на дисплее. В даташите обычно приводится схема, на которой наглядно показано подключение анодов и катодов.

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

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

Это довольно просто, это панель с некоторыми линиями, которые подсвечиваются светодиодом. В зависимости от подсвеченных строк может отображаться другой символ. Для выполнения этого контроля на каждом 10-сегментном дисплее есть 7 контактов. По одному для каждого сегмента, точки (dp), а также две общие, как показано на изображении. Чтобы осветить их, просто используйте микроконтроллер для подачи напряжения на сегмент, который вы хотите осветить, чтобы составить нужный символ.

Обычно всегда представлены числа, но вы также можете создать несколько букв, но не все. Y бросая немного воображения также некоторые символы. Это уже вопрос того, как вы думаете. Но если вам нужно больше сложности, ищите ЖК-дисплеи с большим количеством сегментов, подобных этому.

Распиновка

По пример, чтобы получить «7», вы можете зажечь A, B и C. Или чтобы сделать «A», вы можете зажечь все, кроме dp и D. Просто, верно?

Единственное, что вы должны помнить, это то, что купленный вами 7-сегментный дисплей катод или общий анод. Общий катод имеет общий вывод, подключенный к отрицательным выводам светодиодов, что означает, что им управляет логическая 1 или высокое напряжение для освещения сегмента. В то время как в случае общего анода все присутствующие аноды светодиодов подключены к одному и тому же выводу, и он управляется низким напряжением или 0. Таким образом вы узнаете, должен ли микроконтроллер Arduino отправить 0 или 1 для его активации. ..

Устройство

В настоящее время для отображения информации всё чаще используются графические дисплеи, однако, семисегментные индикаторы также не утратили своего значения. Если требуется лишь отображение чисел, то они могут стать более предпочтительным вариантом, т.к. просты в управлении и могут использоваться совместно с любым микроконтроллером с достаточным количеством выводов. Жидкокристаллические семисегментные индикаторы обладают сверхнизким энергопотреблением (например, в электронных часах, вместе со схемой управления работают от одной батарейки в течении нескольких лет).

Рассмотрим пример разработки схемы дешифратора из двоичного кода в десятичный. Десятичный код обычно отображается одним битом на одну десятичную цифру. В десятичном коде десять цифр, поэтому для отображения одного десятичного разряда требуется десять выходов дешифратора. Сигнал с этих выводов можно подать на десятичный индикатор. В простейшем случае над светодиодом можно просто подписать индицируемую цифру.Таблица истинности десятичного дешифратора приведена ниже.

На этой странице будем вести речь о светодиодных семисегментных индикаторах. Они имеют предельно простую конструкцию, дёшевы, надёжны. Обеспечивают высокую яркость и контрастность отображаемой информации. Существует большое разнообразие индикаторов: с разным цветом свечения сегментов, разного размера, отличающиеся схемой подключения светодиодов (с общим катодом или общим анодом). При необходимости отображения нескольких разрядов можно установить несколько одноразрядных индикаторов рядом на печатной плате либо выбрать нужный вариант многоразрядного индикатора.

Своё название семисегментные индикаторы получили в связи с тем, что изображение символа формируется с помощью семи отдельно управляемых (подсвечиваемых светодиодом) элементов – сегментов. Эти элементы позволяют отобразить любую цифру 0..9, а также некоторые другие символы, например: ‘-‘, ‘A’, ‘b’, ‘C’, ‘d’, ‘E’, ‘F’ и другие.

Это даёт возможность использовать индикатор для вывода положительных и отрицательных десятичных и шестнадцатеричных чисел и даже текстовых сообщений. Обычно индикатор имеет также восьмой элемент – точку, используемую при отображении чисел с десятичной точкой. Сегменты индикатора обозначают буквами a, b, …, g (a – верхний элемент, далее буквы присваиваются сегментам по часовой стрелке; g – центральный сегмент; dp – точка). 8 независимых элементов, каждый из которых может находиться в одном из двух состояний – горит или не горит, дают всего 2**8=256 возможных комбинаций. Или 128 комбинаций, каждая из которых может быть с горящей точкой или без неё.

Семисегментный индикатор из четырех элементов

Реализации

Семисегментные дисплеи могут использовать жидкокристаллический дисплей (LCD), светоизлучающий диод (LED) для каждого сегмента., или другие методы генерации света или управления, такие как газовый разряд с холодным катодом (Panaplex), вакуумно-флуоресцентный (VFD), накаливания (Numitron) и другие. Для ценовых тотемов бензина и других крупных знаков по-прежнему широко используются лопаточные дисплеи, состоящие из отражающих свет сегментов (или «лопаток»), перевернутых с помощью электромагнита. Альтернативой 7-сегментному дисплею в 1950–1970-х годах была неоновая лампа с холодным катодом никси-лампа. Начиная с 1970 года RCA продавала устройство отображения, известное как Numitron, в котором использовались нити накаливания, расположенные в виде семисегментного дисплея. В СССР первый электронный калькулятор «Вега», выпускавшийся с 1964 года, содержал 20 десятичных знаков с семисегментным электролюминесцентным дисплеем.

В простом светодиодном корпусе, как правило, все катоды (отрицательные клеммы) или все аноды (положительные клеммы) сегментных светодиодов подключены и выведены на общий вывод; это называется устройством с «общим катодом» или «общим анодом». Следовательно, для пакета из 7 сегментов плюс десятичная точка потребуется только девять контактов, хотя коммерческие продукты обычно содержат больше контактов и / или пробелов в местах расположения контактов, чтобы соответствовать стандартным разъемам IC. Также существуют интегрированные дисплеи с одной или несколькими цифрами. Некоторые из этих интегрированных дисплеев имеют собственный внутренний декодер, но большинство из них не имеют: каждый отдельный светодиод выведен на соединительный контакт, как описано.

Многоразрядные светодиодные дисплеи, используемые в карманных калькуляторах и аналогичных устройствах, мультиплексированные дисплеи для уменьшения количества контактов ввода / вывода, необходимых для управления дисплеем. Например, все аноды сегментов A каждой позиции цифры будут подключены вместе и к выводу схемы драйвера , в то время как катоды всех сегментов для каждой цифры будут подключены. Чтобы управлять любым конкретным сегментом любой цифры, управляющая интегральная схема должна включать катодный драйвер для выбранной цифры и анодные драйверы для желаемых сегментов; затем после короткого интервала гашения будет последовательно выбираться следующая цифра и светиться новые сегменты. Таким образом, восьмиразрядный дисплей с семью сегментами и десятичной точкой потребует только 8 катодных драйверов и 8 анодных драйверов вместо шестидесяти четырех драйверов и выводов IC. Часто в карманных калькуляторах линии ввода цифр также используются для сканирования клавиатуры, обеспечивая дополнительную экономию; однако одновременное нажатие нескольких клавиш приведет к странным результатам на мультиплексном дисплее.

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

Один байт может кодировать полное состояние 7-сегментного дисплея. Самые популярные битовые кодировки – это gfedcba и abcdefg, где каждая буква представляет определенный сегмент на дисплее. В представлении gfedcba байтовое значение 0x06 (в общей анодной схеме) включает сегменты «c» и «b», которые отображают «1».

История изобретения

В 1910 году американским изобретателем Фрэнком Вудом из Ньюпорт-Ньюс, штат Вирджиния, был запатентован индикатор сегментного типа. Его индикатор был восьмисегментным, с дополнительным косым сегментом для отображения цифры “четыре”. Однако, до 1970-х годов семисегментные индикаторы не получили распространение и для отображения цифр применялись вакуумные индикаторы тлеющего разряда.

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

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

Подключение индикатора на панеле

5Управление 7-сегментным индикатором с помощью драйвера TM1637 и Arduino

Существуют и другие драйверы для подключения 7-сегментных дисплеев. Один из них – TM1637. Есть готовые модули, в которых уже присутствует и индикатор, и драйвер, и вся необходимая «обвязка» (резисторы, конденсаторы). Пример – модуль HW-069. В качестве семисегментного индикатора здесь 4-разрядный индикатор 3642BS-1.

Модуль HW-069 с драйвером TM1637 и четырёхразрядным семисегментным индикатором

Подключение модуля к Arduino предельно простое, т.к. для обмена с драйвером используется интерфейс, очень похожий на I2C. Т.е. необходимо подключить питание от 5 В Arduino, а данные передаются по DIO и тактируются по CLK. Но тем не менее, интерфейс не эквивалентен полностью I2C, т.к. у дисплея нет своего адреса.

Модуль HW-069 с драйвером TM1637 и четырёхразрядным семисегментным индикатором

Как всегда, есть множество готовых библиотек для управления индикатором через драйвер TM1637. Например, библиотека Gyver TM1637 или библиотека Avishay TM1637.

Модуль с драйвером TM1637 работает с Arduino UNO

Эти библиотеки работают прекрасно, и рассказывать, как загружать и устанавливать библиотеку для Arduino не буду: мы это делали уже миллион раз. Мы же не ищем лёгких путей, поэтому попробуем разобраться в работе драйвера TM1637 самостоятельно, верно?

Продолжение следует …

Like this post? Please share to your friends: