Главная - Ремонт
Светодиодные семисегментные индикаторы. Семисегментный индикатор Двухцветный семисегментный индикатор

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

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

В качестве примера рассмотрим два индикатора: SA39-11xxx (xxx - три-четыре буквы, кодирующие цвет, в моём случае GWA) и BC56-12xxx (у меня xxx = SRWA). Приведу ниже список цветов:

  • HWA - ярко-красный на фосфиде галлия GaP, 700 нм
  • EWA - высокопроизводительный красный на фосфиде-арсениде и фосфиде галлия GaAsP/GaP, 625 нм (не знаю, как по-другому можно перевести "HIGH EFFICIENCY RED")
  • GWA - зеленый на фосфиде галлия GaP, 565 нм
  • YWA - желтый на фосфиде-арсениде и фосфиде галлия GaAsP/GaP, 590 нм
  • SRWA - супер ярко-красный на арсениде галлия-алюминия GaAlAs, 660 нм

В названии индикаторов вторая буква обознаяет тип соединения светодиодов: С - общий катод, А - общий анод. Ниже приведена электрическая схема и чертеж SA39 и SC39. Обратите внимание на буквы, которыми обозначили каждый сегмент (a-g) и обозначение точки (DP). Эти названия мы будем использовать в коде программы для объявления макросов. Это позволит как можно сильнее абстагировать программу от электрической схемы, от способа соединения индикатора и МК.

Значит, "ножки" 3 и 8 нужно подключить к шине +5 В (или, в крайнем случае, подать на них +5 В от МК, но так делать не рекомендуется), а остальные - к какому-либо порту МК. При этом не очень-то важно, в каком порядке, т. к. в случае ошибки Вы просто увидите на индикаторе не цифру, а какую-нибудь букву "зю". Тогда придется либо подключить по-другому, либо внести небольшие изменения в программу. В общем, символ, отображемый на индикаторе, зависит от того, какое число отправить в порт. Всего существует 255 комбинаций, и все они возможны независимо от способа подключения. Я использовал порт D для подключения индикатора.

Остается только лишь написать простенькую программу:

#include "iom16.h" #define a 1 // Эти макросы содержат числа, соответствующие двойке, #define b 2 // возведенной в степень, равной номеру "ножки" того #define c 4 // порта, к которому подключен сегмент индикатора с #define d 128 // одноименным макросу названием. Для того, чтобы вывести #define e 64 // какую-либо цифру на индикатор, нужно отправить в порт #define f 32 // число 255 минус сумму соответствующих сегментам макросов. #define g 16 // Эти числа позволяют сделать программу независимой от подключения. #define DP 8 // Измените эти числа, если индикатор выводит букву "зю" short unsigned int i = 1; unsigned char DigNumber = 0; unsigned char Dig; // Массив, в котором хранятся числа, которые нужно // вывести через порт на индикатор, чтобы он показал цифру, равную номеру // элемента массива. Числа зависят только от макросов. void io_init() { DDRD = 0xFF; // К порту D подключен индикатор PORTD = 0xFF; } void timer0_init() { OCR0 = 15; // Таймер срабатывает каждые 1024 такта. Прерывание каждые // 1024*16 тактов. TCCR0 |= (1 void Dig_init() { Dig = 255 - (a+b+c+d+e+f); // Если индикатор с общим анодом, Dig = 255 - (b+c); // нужно сумму макросов отнять от Dig = 255 - (a+b+g+e+d); // 255. Если с общим катодом, то Dig = 255 - (a+b+g+c+d); // отнимать не нужно. Dig = 255 - (f+g+b+c); // Имена макросов соответствуют Dig = 255 - (a+f+g+c+d); // именам сегментов индикатора Dig = 255 - (a+f+g+c+d+e); Dig = 255 - (a+b+c); Dig = 255 - (a+b+c+d+e+f+g); Dig = 255 - (a+b+c+d+f+g); } void main() { io_init(); timer0_init(); Dig_init(); SREG |= (1 //Выводим на индикатор цифру "0" while (1) {} } #pragma vector = TIMER0_COMP_vect __interrupt void Indic_change() { if (i // 675*16*1024 = 11,0592 МГц { // Каждую секунду меняется цифра на индикаторе i++; } else { i = 1; if (DigNumber else DigNumber = 0; PORTD = Dig; } }

Как это работает, думаю, ясно из комментариев к коду. Макросы после #define позволяют сделать код почти независящим от способа подключения индикатора. Если, например, Вы подключили 5-й вывод индикатора (d-сегмент) к выводу PD3 МК, то для того, чтобы все правильно работало, нужно сопоставить макросу d число 2 3 =8, написав

#define d 8

Откомпилировав программу и прошив ее в МК, если все правильно подключено и соответствующе описано в #define, получаем цифровые электронные часы, которые умеют считать до 10. Если у Вас установлен резонатор на 11,0592 МГц, то эти часы будут тикать раз в секунду и с, казалось бы, поразительной точностью: за час они не собьются ни на секунду! Но удивительного тут ничего нет: вся точность упирается в качество резонатора и отсутствие ошибок в программе. Кстати, в электронных часах стоят такие же резонаторы, только меньших размеров и частот (обычно 3 КГц). Но собирать часы на МК несколько нерационально, потому что существуют специализированные микросхемы для этого, умеющие отсчитывать время, дату, месяц, день недели, год и т.д. Связав с такой микросхемой МК, можно научить его "чувствовать" время.

Но мы несколько отвлеклись от темы нашей статьи. Теперь пора рассмотреть работу с трехзначным индикатором, коим является BC56-12xxx. По логике у него должно быть 8*3+1=25 выводов. Но у него их только лишь 12. Давайте посмотрим его документацию.

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

Итак, подавая напряжение на выводы 1, 2, 3, 4, 5, 7, 10, 11, формируют цифру (символ), мы их назовем информационными или шиной данных, а управляя выводами 8, 9, 12, определяют позицию этой цифры. Выводы 8, 9, 12 назовем выводами выбора устройства или шиной адреса. Понятно, что нельзя одновременно зажечь две или три разные цифры. Придется использовать стробирование, т. е. зажигать цифры по очереди с высокой скоростью. Они будут мерцать, но глаз этого не успеет заметить.

Значит, с выводами 1, 2, 3, 4, 5, 7, 10, 11 работа совершенно аналогична. А выводы 8, 9, 12 нужно замыкать на землю по очереди. Казалось бы, чего проще - присоединить их к МК и все. Но, как я уже говорил, не следует цеплять к МК общий электрод - это слишком большая нагрузка для него, и его порт ввода-вывода может сгореть. Следует использовать полевые транзисторы, как это было описано в предыдущей статье.

Мне кажется, настало время рассказать о шифраторах и дешифраторах. Дешифраторами называются комбинационные устройства, преобразующие n-разрядный двоичный код на их входе в логический сигнал, появляющийся на том выходе, десятичный номер которого соответствует двоичному коду. Дешифраторы имеют как правило 3 или 4 входа и 8 или 16 выходов соответственно. Как работает дешифратор? Подадим на вход число в двоичном коде, например, 5, установив лог. 1 на первом и третьем выводах на входе. Тогда появится лог. 1 на пятом выходе. Шифраторы выполняют обратную операцию - если подать лог. 1 на один из входов, на выходе появится двоичный код номера этого входа.

Дешифраторы позволяют решить проблему нехватки выходов. Например, у МК есть 3 свободных выхода для выбора устройства, а мы хотим подключить семь устройств. Но ведь у этих трех выходов могут быть 8 различных состояний! Подключив дешифратор, из трех выходов сделаем восемь работающих по очереди и решим т. о. проблему.

В школах и особенно вузах часто на уроках информатики рисуют логическую схему работы памяти, где есть груда логических элементов "И" и/или "ИЛИ" для выборки ячейки памяти, какая-то шина данных, шина адреса, ячейки памяти... Короче, обычно преподаватель сам не может понять, что он нарисовал, как это все работает и не загибается. Оказывается, там стоит дешифратор и все работает очень просто. По шине адреса приходит адрес ячейки памяти в двоичном коде, в которую надо записать информацию (или прочитать) и поступает в дешифратор. Дешифратор подключает требуемую ячейку к цепи питания, ячейка начинает работать и сохраняет тот двоичный код, который установлен на шине данных (или выдает туда свое содержимое). После этого исчезает адрес на шине адреса и дешифратор отключает эту ячейку до следующего использования. При запуске компьютера в программе Setup можно установить напряжение на ЦПУ (там можно выбрать из нескольких значений). А как это происходит? Есть специальная шина, по которой двоичный код поступает в дешифратор. Дешифратор открывает один из нескольких транзисторов и через этот транзистор идет питание требуемого напряжения на ЦПУ.

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

Вернемся к нашей конструкции. Схема очень проста. Я прицепил к порту А половинку панельки для широких микросхем, так чтобы подключенными оказались выводы 1, 2, 3, 4, 5, 7, 10, 11 вставленного в нее семисегментного индикатора BC56-12xxx. Другие три вывода подключены через уже знакомые нам транзисторы IRF7311 к выводам порта С (вывод 12 к РС5, 9 - к РС6, 8 - к РС7). Один из транзисторов (корпуса два, а их четыре) остался про запас.

Код программы приведен ниже. Поскольку в будущем может возникнуть необходимость некоторое трехзначное число, хранящееся в переменной, вывести на индикатор, неплохо было бы написать для этого какую-нибудь специальную функцию. Назовем ее Display(). Казалось бы, реализовать ее очень просто, нужно число поделить на 100, найти целое от деления и остаток и потом также поделить на 10. Но... Но МК не знает функций mod и div. Это во-первых. А во-вторых, у него нет математического сопроцессора для деления, и одна операция деления может занимать сотни и даже тысячи тактов процессора, в отличие от сложения/вычитания (1 такт для char) и умножения на целое (2 такта для char). Поэтому всегда старайтесь заменить деление чем-либо другим, если возможно. Иногда бывает даже рациональнее отправить некоторые данные через COM-порт в компьютер, там произвести вычисления и вернуть обратно результат. Как это реализовать, в следующей статье. А сейчас рассмотрим наглядный пример.

Предположим, Вы решили поставить у себя в ванной электронный регулятор температуры воды на МК, который постоянно измеряет температуру воды в душе специальным датчиком и с помощью мотора крутит кран так, чтобы температура стремилась к заданному значению. И Вы используете некий алгоритм, позволяющий с очень большой точностью управлять этим процессом. Но алгоритм содержит операции деления, извлечения корня, вычисления логарифма, косинуса и, несомненно, интеграла. И когда Вы пойдете мыться, после поворота ручки регулировки температуры, МК "зависнет" и будет на Вас несколько секунд будет лить воду температурой 70-80 °С, а потом, когда он все вычислит, с большой точностью выставит нужные Вам 28,32204°С. :)

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

#include "iom16.h" #define a 1 #define b 4 #define c 16 #define d 64 //Меняем эти числа для другого индикатора #define e 128 #define f 2 #define g 8 #define DP 32 short unsigned int i = 1; short unsigned int Number = 0; unsigned char Dig; // В этих переменных хранятся цифры, которые нужно отобразить char Disp5, Disp6, Disp7; // Функция выделяет цифры из трехзначного числа Number void Display (short unsigned int Number) { unsigned char Num1, Num2, Num3; Num1=Num2=0; while (Number >= 100) { Number -= 100; Num1++; } while (Number >= 10) { Number -= 10; Num2++; } Num3 = Number; Disp5 = Dig; Disp6 = Dig; Disp7 = Dig; } void io_init() //Инициализация портов ввода/вывода { DDRA = 0xFF; PORTA = 0; DDRC |= (1 void timer0_init() { OCR0 = 15; TCCR0 |= (1 void Dig_init() { Dig = (a+b+c+d+e+f); // Сейчас у нас схема с общим катодом Dig = (b+c); Dig = (a+b+g+e+d); Dig = (a+b+g+c+d); Dig = (f+g+b+c); Dig = (a+f+g+c+d); Dig = (a+f+g+c+d+e); Dig = (a+b+c); Dig = (a+b+c+d+e+f+g); Dig = (a+b+c+d+f+g); } void main() { unsigned char j, k = 0; Dig_init(); Display(0); io_init(); timer0_init(); SREG |= (1 while(1) { for (j = 0; j // Задержка для отображения цифры (k == 3) ? k = 0: k++; PORTC &= 31; //Очистка PC7, PC6, PC5 for (j = 0; j// Задержка для выключения транзистора switch (k) { case 0: PORTC |= (1 // Единицы PORTA = Disp7; break ; case 1: PORTC |= (1 // Десятки PORTA = Disp6; break ; case 2: PORTC |= (1 // Сотни PORTA = Disp5; } } } #pragma vector = TIMER0_COMP_vect __interrupt void Indic_change() { if (i else { i = 1; if (Number else Number = 0; PORTB++; Display(Number); // Увеличение отображаемого числа. } }

Функция Display(Number) берет число Number и отнимает от него по сотне, пока Number не станет меньше 100. Количество отнятых сотен сохраняется в Num1. Аналогично потом отнимают десятки. Количество десятков - в переменной Num2. Остаток (единицы) сохраняется в Num3. Глобальным переменным Disp5, Disp6, Disp7 присваиваются значения, которые нужно отправить в порт A, чтобы отобразить исходное число Number. Как это выглядит в действии, увидите, когда прошьёте программу в МК.

© Киселев Роман
Июнь 2007


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

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

Как говорит его название, состоит из семи элементов индикации (сегментов), включающихся и выключающихся по отдельности. Включая их в разных комбинациях, из них можно составить упрощённые изображения арабских цифр.
Сегменты обозначаются буквами от A до G; восьмой сегмент - десятичная точка (decimal point, DP), предназначенная для отображения дробных чисел.
Изредка на семисегментном индикаторе отображают буквы.

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

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

Кроме десяти цифр, семисегментные индикаторы способны отображать буквы. Но лишь немногие из букв имеют интуитивно понятное семисегментное представление.
В латинице : заглавные A, B, C, E, F, G, H, I, J, L, N, O, P, S, U, Y, Z, строчные a, b, c, d, e, g, h, i, n, o, q, r, t, u.
В кириллице : А, Б, В, Г, г, Е, и, Н, О, о, П, п, Р, С, с, У, Ч, Ы (два разряда), Ь, Э/З.
Поэтому семисегментные индикаторы используют только для отображения простейших сообщений.

Всего семисегментный светодиодный индикатор может отобразить 128 символов:

В обычном светодиодном индикаторе девять выводов: один идёт к катодам всех сегментов, а остальные восемь - к аноду каждого из сегментов. Эта схема называется «схема с общим катодом» , существуют также схемы с общим анодом (тогда все наоборот). Часто делают не один, а два общих вывода на разных концах цоколя - это упрощает разводку, не увеличивая габаритов. Есть еще, так называемые «универсальные», но я лично с такими не сталкивался. Кроме того существуют индикаторы со встроенным сдвиговым регистром, благодаря чему намного уменьшается количество задействованных выводов портов микроконтроллера, но они намного дороже и в практике применяются редко. А так как необъятное не объять, то такие индикаторы мы пока рассматривать не будем (а ведь есть еще индикаторы с гораздо большим количеством сегментов, матричные).

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

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

На схеме ниже, показано как подключается одноразрядный семисегментный индикатор к микроконтроллеру.
При этом следует учитывать, что если индикатор с ОБЩИМ КАТОДОМ , то его общий вывод подключается к «земле» , а зажигание сегментов происходит подачей логической единицы на вывод порта.
Если индикатор с ОБЩИМ АНОДОМ , то на его общий провод подают «плюс» напряжения, а зажигание сегментов происходит переводом вывода порта в состояние логического нуля .

Осуществление индикации в одноразрядном светодиодном индикаторе осуществляется подачей на выводы порта микроконтроллера двоичного кода соответствующей цифры соответствующего логического уровня (для индикаторов с ОК — логические единицы, для индикаторов с ОА — логические нули).

Токоограничительные резисторы могут присутствовать в схеме, а могут и не присутствовать. Все зависит от напряжения питания, которое подается на индикатор и технических характеристик индикаторов. Если, к примеру, напряжение подаваемое на сегменты равно 5 вольтам, а они рассчитаны на рабочее напряжение 2 вольта, то токоограничительные резисторы ставить необходимо (чтобы ограничить ток через них для повышенного напряжении питания и не сжечь не только индикатор, но и порт микроконтроллера).
Рассчитать номинал токоограничительных резисторов очень легко, по формуле дедушки Ома .
К примеру, характеристики индикатора следующие (берем из даташита):
— рабочее напряжение — 2 вольта
— рабочий ток — 10 мА (=0,01 А)
— напряжение питания 5 вольт
Формула для расчета:
R= U/I (все значения в этой формуле должны быть в Омах, Вольтах и Амперах)
R= (напряжение питания — рабочее напряжение)/рабочий ток
R= (5-2)/0.01 = 300 Ом

Схема подключения многоразрядного семисегментного светодиодного индикатора в основном та-же, что и при подключении одноразрядного индикатора. Единственное, добавляются управляющие транзисторы в катодах (анодах) индикаторов:

На схеме не показано, но между базами транзисторов и выводами порта микроконтроллера необходимо включать резисторы, сопротивление которых зависит от типа транзистора (номиналы резисторов рассчитываются, но можно и попробовать применить резисторы номиналом 5-10 кОм).

Осуществление индикации разрядами осуществляется динамическим путем:
— выставляется двоичный код соответствующей цифры на выходах порта РВ для 1 разряда, затем подается логический уровень на управляющий транзистор первого разряда
— выставляется двоичный код соответствующей цифры на выходах порта РВ для 2 разряда, затем подается логический уровень на управляющий транзистор второго разряда
— выставляется двоичный код соответствующей цифры на выходах порта РВ для 3 разряда, затем подается логический уровень на управляющий транзистор третьего разряда
— итак по кругу
При этом надо учитывать:
— для индикаторов с ОК применяется управляющий транзистор структуры NPN (управляется логической единицей)
— для индикатора с ОА — транзистор структуры PNP (управляется логическим нулем)

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

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

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

И вот в начале двадцатого века, с появлением электронных ламп появились первые газоразрядные индикаторы

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

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

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

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

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

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

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

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

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

Обратите внимание, что трехзначный частотомер может указывать максимальные частоты 999 Гц при использовании односекундной базы, 99 кГц при использовании 100 мс временной базы, 9 кГц при использовании временной базы 10 мс и 999 кГц при использовании 1 мс временной базы.

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

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

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

Несколько мгновений спустя переключатель переходит в положение 3, заставляя дисплей 3 отображать число через несколько минут, весь цикл начинает повторяться снова и так далее, добавляя бесконечность. На практике около 50 из этих циклов происходят каждую секунду, поэтому глаз не видит, что дисплеи включаются и выключаются отдельно, но воспринимают их как явно устойчивый дисплей, который показывает номер 327, или какой-либо другой номер продиктован сегментом данные.

Если рассмотреть схему одиночного семисегментного индикатора, то она выглядит вот так:

Как мы видим, семисегментный индикатор может быть как с общим анодом (ОА) , так и с общим катодом (ОК) . Грубо говоря, если семисегментник у нас с общим анодом (ОА), то в схеме мы должны на этот вывод вешать "плюс", а если с общим катодом (ОК) - то "минус" или землю. На какой вывод мы подадим напряжение, такой светодиодик у нас и загорится. Давайте все это продемонстрируем на практике.

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

Если эти терминалы активны высоко, они будут иметь следующие характеристики. Фиг. 18 и 19. На рисунке 18 показана техника гашения пульсаций, используемая для обеспечения подавления начального нуля на четырехзначном дисплее, который считывает количество.

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

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

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

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

Опаньки, у нас загорелся один сегмент, таким же образом проверяем и другие сегменты.

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

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

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

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

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

Подсчет в шестнадцатеричном виде на одном 7-сегментном дисплее

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

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

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

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

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

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

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

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

Фактическая проблема и, следовательно, интересная в этой статье часть, однако, происходит непосредственно после цикла метки. Обратите внимание, что значение счетчика должно быть удвоено. Это напрямую связано с тем, что флеш-память носит словесный характер, а не байт-мудрый. Во втором примере на этой странице это делается по-другому. Там показано, как посредством другой записи таблицы генерация байтов заполнения может быть предотвращена ассемблером. Интересно также, что для расчета требуется регистр, который содержит значение 0.

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

В этой статье мы поговорим о цифровой индикации.
Семисегментные светодиодные индикаторы предназначены для отображения арабских цифр от 0 до 9 (рис.1).

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

К сожалению, есть проблема, потому что для отображения необходимо восемь портов - четыре объявления потребуют 32 порта. Но есть несколько путей. Сдвиговые регистры уже описаны в другом учебнике. Это упростило бы создание требуемых 32 выходных линий только с тремя выводами. Принцип управления не отличается от управления одним 7-сегментным дисплеем, только то, как «выходные выводы» приближаются к их значениям, отличается и определяется использованием сдвиговых регистров. На данный момент, однако, должен быть показан другой вариант управления.



Рис.2.

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

Ниже мы рассмотрим мультиплексирование еще раз. Мультиплексирование означает, что не все четыре дисплея включаются одновременно, но только один на короткое время. Если изменение между дисплеями происходит быстрее, чем мы, люди, можем воспринимать, все четыре индикатора, похоже, работают одновременно, хотя на один короткий промежуток времени светится только один. Таким образом, четыре дисплея могут разделять отдельные сегменты сегмента, и все, что требуется, - это 4 дополнительные линии управления для 4 дисплеев, с которыми включен дисплей.

Одним из аспектов этого типа управления является частота мультиплексирования, то есть полный цикл перехода с одного дисплея на другой. Он должен быть достаточно высоким, чтобы избежать мерцания дисплея. Человеческий глаз вялый, в кинотеатре 24 кадра в секунду, с телевизором, чтобы быть на безопасной стороне, что также неподвижные изображения спокойны, каждый сегмент должен контролироваться не менее 100 Гц, поэтому он подключается, по крайней мере, каждые 10 мс. В исключительных случаях, однако, даже 100 Гц все еще могут мерцать, Например, когда дисплей перемещается быстро или когда возникают помехи с искусственными источниками света, которые работают с переменным током.

Светодиодные индикаторы бывают двух типов.
В первом из них все катоды, т.е. отрицательные выводы всех светодиодов, объединены вместе и для них выделен соответствующий вывод на корпусе.
Остальные выводы индикатора соединены к аноду каждого из светодиодов (рис.3, а). Такая схема называется «схема с общим катодом».
Также существуют индикаторы, у которых светодиоды каждого из сегментов подключены по схеме с общим анодом (рис.3, б).



Рис.3.

Каждый сегмент обозначен соответствующей буквой. На рисунке 4 представлено их расположение.

Рис.4.

В качестве примера рассмотрим двухразрядный семисегментный индикатор GND-5622As-21 красного свечения. Кстати существуют и другие цвета, в зависимости от модели.
С помощью трехвольтовой батарейки можно включать сегменты, а если объединить группу выводов в кучку и подать на них питание, то можно даже отображать цифры. Но такой метод является неудобным, поэтому для управления семисегментными индикаторами используют регистры сдвига и дешифраторы. Также, нередко, выводы индикатора подключаются напрямую к выходам микроконтроллера, но лишь в том случае когда используются индикаторы с низким потреблением тока. На рисунке 5 представлен фрагмент схемы с использованием PIC16F876A.



Рис.5.

Для управления семисегментным индикатором часто используется дешифратор К176ИД2.
Эта микросхема способна преобразовать двоичный код, состоящий из нулей и единиц в десятичные цифры от 0 до 9.

Чтобы понять, как все это работает, нужно собрать простую схему (рис.6). Дешифратор К176ИД2 выполнен в корпусе DIP16. Он имеет 7 выходных вывода (выводы 9 - 15), каждый из которых предназначен для определенного сегмента. Управление точкой здесь не предусмотрено. Также микросхема имеет 4 входа (выводы 2 - 5) для подачи двоичного кода. На 16-й и 8-ой вывод подается плюс и минус питания соответственно. Остальные три вывода являются вспомогательными, о них я расскажу чуть позже.



Рис.6.

DD1 - К176ИД2
R1 - R4 (10 - 100 кОм)
HG1 - GND-5622As-21

В схеме присутствует 4 тумблера (можно любые кнопки), при нажатии на них на входы дешифратора подается логическая единица от плюса питания. Кстати питается сама микросхема напряжением от 3 до 15 Вольт. В данном примере вся схема питается от 9-вольтовой "кроны".

Также в схеме присутствует 4 резистора. Это, так называемые, подтягивающие резисторы. Они нужны, чтобы гарантировать на логическом входе низкий уровень, при отсутствии сигнала. Без них показания на индикаторе могут отображаться некорректно. Рекомендуется использовать одинаковые сопротивления от 10 кОм до 100 кОм.

На схеме выводы 2 и 7 индикатора HG1 не подключены. Если подключить к минусу питания вывод DP, то будет светиться децимальная точка. А если подать минус на вывод Dig.2, то будет светиться и вторая группа сегментов (будет показывать тот же символ).

Входы дешифратора устроены так, что для отображения на индикаторе чисел 1, 2, 4 и 8 требуется нажатие лишь одной кнопки (на макете установлены тумблеры, соответствующие входам D0, D1, D2 и D3). При отсутствии сигнала отображается цифра ноль. При подаче сигнала на вход D0 отображается цифра 1. И так далее. Для отображения других цифр требуется нажатие комбинации тумблеров. А какие именно нужно нажимать нам подскажет таблица 1.


Таблица 1.

Чтобы отобразить цифру "3" необходимо логическую единицу подать на вход D0 и D1. Если подать сигнал на D0 и D2, то отобразится цифра "5" (рис.6).



Рис.6.

Здесь представлена расширенная таблица, в которой мы видим не только ожидаемую цифру, но и те сегменты (a - g), которые составят эту цифру.



Таблица 2.

Вспомогательными являются 1, 6 и 7-ой выводы микросхемы (S, M, К соответственно).

На схеме (рис.6) 6-ой вывод "М" заземлен (на минус питания) и на выходе микросхемы присутствует положительное напряжение для работы с индикатором с общим катодом. Если используется индикатор с общим анодом, то на 6-ой вывод следует подать единицу.

Если на 7-ой вывод "К" подать логическую единицу, то знак индикатора гасится, ноль разрешает индикацию. В схеме данный вывод заземлен (на минус питания).

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

Стоит заметить одну интересную вещь: мы знаем, что тумблер D0 включает цифру "1", а тублер D1 цифру "2". Если нажать оба тумблера, то высветится цифра 3 (1+2=3). И в других случаях на индикатор выводится сумма цифр, составляющих эту комбинацию. Приходим к выводу, что входы дешифратора расположены продуманно и имеют очень логичные комбинации.

Также вы можете посмотреть видео к этой статье.

В сегодняшней статье поговорим о 7-сегментных индикаторах и о том, как их «подружить» с Ардуино. Есть несколько вариантов. Самый простой, безусловно, это зайти на и купить готовый индикатор с интегрированным шилдом (это платка согласования так называется), но мы не ищем лёгких путей, поэтому пойдем путем чуть более сложным. Новички – не пугайтесь, эта статья, как и предыдущие мои статьи ( и ) именно для вас. Пусть гуру пишут для таких же умудренных опытом гуру, а я новичок – пишу для новичков.

Почему именно 7-сегментный индикатор? Ведь существует столько всяких экранов, с большим количеством символов, строк, разнообразных диагоналей и разрешений, черно-белых и цветных, самые доступные из которых стоят пару долларов… А тут: «старенький», до безобразия простой, но требующий огромного количества пинов 7-сегментный индикатор, но все-таки преимущество есть и у этого «старичка». Дело в том, что пользуясь приведенными здесь скетчами можно оживить не только индикатор с высотой цифр 14 мм, но и более серьезные (правда уже самодельные) проекты, и метровые цифры в данном случае далеко не предел. Жителям столиц это может быть не так интересно, а вот население Новокацапетовки или Нижней Кедровки очень порадуется, если на клубе или сельсовете появятся часы, которые еще могут и дату отображать, и температуру, а о создателе этих часов будут говорить очень долго. Но, подобные часы тема отдельной статьи: будет желание у посетителей – напишу. Всё выше написанное можно считать вступлением. Как и прошлая моя статья эта будет состоять из частей, на этот раз из двух. В первой части мы просто «по управляем» индикатором, а во второй – попробуем приспособить его для чего-то хоть немного полезного. Итак, продолжим:

Часть первая. Экспериментально – познавательная

За основу данного проекта взят нам уже хорошо знакомый по предыдущим статьям ARDUINO UNO. Напомню, что приобрести его легче всего можно здесь: или здесь: , кроме этого понадобится 4-разрядный, 7-сегментный индикатор. У меня, в частности GNQ-5641BG-11. Почему именно этот? Да просто потому, что лет 5 назад купил его по ошибке, идти менять было лень, вот он и валялся все это время, ожидая своего часа. Думаю, что подойдет любой с общим анодом (и с общим катодом можно, но придется данные массива и остальные значения портов инвертировать – т.е. менять на обратные), лишь бы не был слишком мощным, чтобы не сжечь Ардуинку. Кроме этого – 4 токоограничивающих резистора, примерно 100 Ом каждый и кусок шлейфа (мне хватило 10 см) на 12 пин (жил) можно «оторвать» от более широкого, что я и сделал. А можно вообще отдельными проводочками подпаяться, проблем не будет. Еще понадобятся штыри на плату (11 шт.) хотя, если аккуратно можно и без них. Эскиз индикатора можно увидеть на рисунке 1, а его схему на рисунке 2. Также отмечу, что на каждый сегментик этого индикатора лучше подавать не более 2.1В (ограничивается 100-Омными резисторами), и в этом случае он будет потреблять не более 20 мА. В случае, если загорится цифра «8» потребление не превысит 7х20=140 мА, что вполне допустимо для выходов Ардуино. Любознательный читатель задаст вопрос: «Но ведь 4 разряда по 140 мА это уже 4х140=560 мА, а это уже многовато!» Отвечу – останется 140. Каким образом? Читайте дальше! Расположение пинов на индикаторе видно на рисунке 3. А подключение делаем согласно таблице 1.


Рис. 1 - Эскиз индикатора


Рис. 2 - Схема индикатора


Рис. 3 - Расположение пинов

Таблица 1

Пин Ардуино Уно

Пин индикатора

Примечание

Сегмент G

Сегмент F

Сегмент E

Сегмент D

Сегмент C

Сегмент B

Сегмент A

Общий анод сегмента № 1, подключать через резистор 100 Ом.

Общий анод сегмента № 2, подключать через резистор 100 Ом.

Общий анод сегмента № 3, подключать через резистор 100 Ом.

Общий анод сегмента № 6, подключать через резистор 100 Ом.



Заливаем простенький скетч, который представляет собой простенькую «считалочку» от 0 до 9:


А теперь немного пояснений. DDRD это регистр порта D (DDRB – соответственно порта В) за «страшным» словом «регистр» всего лишь «спряталась» функция, которая указывает, будет порт своим пином читать что-то (принимать информацию), либо наоборот туда можно будет что-то писать (отдавать информацию). В данном случае строчка DDRD=B11111111; указывает, что все пины порта D выходные, т.е. информация из них будет выходить. Буквочка «В» обозначает, что в регистр записано двоичное (бинарное) число. Нетерпеливый читатель тут же спросит: «А десятичное можно!?!». Спешу успокоить – можно, но об этом чуть позже. Если бы мы хотели половину порта задействовать на вход, а половину на выход можно было бы указать так: DDRD=B11110000; единицы показывают те пины, которые будут отдавать информацию, а нули – те, которые будут эту самую информацию принимать. Основное удобство регистра заключено еще и в том, что не надо прописывать 8 раз все пины, т.е. мы экономим в программе 7 строк. А теперь разберем следующую строку:

PORTB=B001000; // устанавливаем высокий уровень 11 пина порта В

PORTB это регистр данных порта В, т.е. записав в него какое-либо число мы указываем на каком пине порта будет единица, а на каком – ноль. В добавление к комментарию скажу, если взять Ардуино Уно таким образом, чтобы видеть контроллер и цифровые пины были сверху - будет понятна запись в регистр, т.е. какой «ноль» (или «единица»)отвечает за какой пин, т.е. крайний правый ноль порта В отвечает за 8-й пин, а крайний левый – за 13-й (у которого встроенные светодиод). Для порта D соответственно правый за пин 0, левый за пин 7.
Надеюсь после таких развёрнутых пояснений все понятно, а раз понятно предлагаю вернуться к известной нам и горячо любимой с детства десятичной системе счисления. И еще – скетч в 25 строк вроде и небольшой, но для новичка все-таки несколько громоздок. Будем уменьшать.

Заливаем еще более простой скетч, та же самая «считалочка»:


Видео 1 .
Всего 11 строчек! Вот это по-нашему, «по-новичковски»! Прошу обратить внимание вместо двоичных чисел в регистры записаны десятичные. Естественно, для десятичных чисел никаких букв впереди не нужно. Думаю, не лишним будет свести все числа в таблицы.

Таблица 2. Соответствие отображаемого знака данным порта

Общий анод

Общий катод

Двоичная система

Десятичная система

Двоичная система

Десятичная система

Таблица 3. Соответствие отображаемого разряда данным порта

Общий анод

Общий катод

Двоичная система

Десятичная система

Двоичная система

Десятичная система



Внимание! Данные таблиц 2 и 3 справедливы только при распайке согласно таблице 1.
А теперь зальем скетч со «считалочкой» от 0 до 9999:




Рис. 4 - Считалочка

Работу скетча можно посмотреть на Видео 2 .

В этом скетче комментариев больше, чем самого кода. Вопросов возникнуть не должно…. Кроме одного, что это за «цикл мерцания» такой, что, собственно говоря, там мерцает и для чего? А еще переменная для этого какая-то…
А все дело в том, что одноименные сегменты всех четырех разрядов у нас соединены в одной точке. А1, А2, А3 и А4 имеют общий катод; А1, В1,…..G1 общий анод. Так, что подав одновременно на 4 разрядный индикатор «1234» мы получим «8888» и очень удивимся по этому поводу. Чтобы этого не произошло нужно сначала зажечь «1» в своем разряде, потом отключить её, зажечь «2» в своем и т.д. Если делать это очень быстро, то мерцание цифр сольётся, как кадры на киноплёнке и глаз его практически не будет замечать. А максимальное значение переменной мерцания в данном случае управляет скоростью смены цифр на индикаторе. Кстати, именно благодаря этому «мерцанию» и максимальное потребление тока всего 140 мА, вместо 560. А теперь предлагаю перейти к чему-то более полезному.

Часть вторая. Хоть немного полезная

В этой части мы выведем символы с персонального компьютера на 7-сегментный индикатор при помощи ARDUINO MEGA. Почему вдруг возникла идея «поменять лошадей на переправе»? Причин две: первая – до этого в своих статьях я ни разу не рассматривал ARDUINO MEGA; и вторая – в ARDUINO UNO я так и не разобрался, как мне динамически менять местами СОМ порт и порт D. Но я новичок – мне простительно. Приобрести данный контроллер, естественно можно здесь: . Для реализации задуманного пришлось взять паяльник и перепаять шлейф со стороны Ардуино, а также написать новый скетч. Как перепаян шлейф можно посмотреть на Рисунке 5. Все дело в том, что ARDUINO MEGA и ARDUINO UNO имеют разную распиновку портов, да и в Меге портов гораздо больше. Соответствие использованных пинов видно из Таблицы 4.



Рис. 5 - Новая распайка шлейфа

Таблица 4

Порт Мега


Внимание! Данная таблица справедлива только для данного проекта!

Также следует обратить внимание, что порт С у Ардуино Мега «начинается» с 37 пина и далее по убывающей, а порт А – с 22 пина и далее по возрастающей.



Рис. 6 - Общий вид



Небольшие особенности реализации: выводить будем 4 символа. Символы должны быть цифрами. Если ввели «1234» и увидим «1234», если ввели «123456» все равно увидим «1234», если ввели «йцук», «фыва1234», «отиог485909оапоьм» - не увидим ничего. Если ввели «рр2345мм» увидим « 23» т.е. небольшая, встроенная «защита от дурака».

Собственно скетч:



А как работает данная программа можно посмотреть на Видео 3 .



Обзор подготовил Павел Сергеев

Или термометров с большими цифрами, трудно найти подходящие индикаторы (типа АЛС), а иногда нужен такой размер, которого вообще нет в продаже. Для этого часто каждый элемент (сегмент) цифр собирают из нескольких обычных круглых светодиодов. Мы предлагаем более совершенный и удобный вариант такого решения, с использованием микросхемы 74HC595. В проекте получились знаки почти 10 сантиметров высоты, что могут быть видны на большие расстояния. При необходимости, большое количество цифр может быть последовательно связана друг с другом через специализированный разъем.

Принципиальная схема

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

Микросхема ULN2003 помогает усилить ток, протекающий через светодиоды. Резисторы R1 — R8 токоограничивающие для светодиодов, которые в схеме соединены последовательно.

 


Читайте:



Молибденовые смазки - принцип действия и особенности применения

Молибденовые смазки - принцип действия и особенности применения

Рассказать в соц. сетях: Рассмотрены свойства и преимущества дисульфидмолибденовых смазок Molykote и EFELE, приведены некоторые примеры их...

Mitsubishi ASX: берём Outlander и отсекаем всё лишнее Для программы Trade-In

Mitsubishi ASX: берём Outlander и отсекаем всё лишнее Для программы Trade-In

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

Как можно увеличить клиренс на автомобиле Форд Фокус?

Как можно увеличить клиренс на автомобиле Форд Фокус?

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

Калькулятор перевода давления в барах на МПа, кгс и psi

Калькулятор перевода давления в барах на МПа, кгс и psi

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

feed-image RSS