Главная » Микроконтроллеры
Призовой фонд
на ноябрь 2017 г.
1. Термометр Relsib WT51
Рэлсиб
2. 1000 руб
PCBWay
3. Тестер компонентов LCR-T4
Паяльник
4. 200 руб.
От пользователей

Еще раз о динамической индикации на LED-индикаторах

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

В самом начале коснемся вопроса, который часто вызывает споры на форумах, а именно, насколько эффективна ДИ с точки зрения субъективной яркости по сравнению со статической индикацией, при условии равенства среднего тока, протекающего через сегмент индикатора (эффективность ДИ с позиции аппаратных затрат, я думаю, очевидна). Чтобы расставить все точки над «i» в данном вопросе, была собрана на макетной плате простая схема на МК PIC12F629, изображенная на схеме.

В этой простейшей схеме реализована индикация стилизованной буквы «С» таким образом, что через нижний сегмент (“d”) проходит постоянный ток 1 мА, далее снизу вверх: через сегмент “e” протекает ток 2 мА со скважностью 2, через сегмент “f” – ток 4 мА со скважностью 4 и, наконец, через сегмент “a” – ток 8 мА со скважностью 8. В итоге, имеем средний ток через каждый сегмент в 1 мА, но при разных скважностях от 1 до 8. Во вложении прилагается модель Proteus, в котором, при помощи логического анализатора, можно убедиться, что сигнал подается вышеописанным способом. Резисторы подобраны так, что обеспечиваются указанные токи (с учетом того, что падение напряжения на светодиоде при токах 1-4 мА примерно равно 1.8 В, а при 8мА – около 1.9 В). Ниже приведены фотографии свечения индикатора, как для указанных токов, так и для примерно в два раза меньших при напряжении питания 3.3 Вольт.

Как оказалось, субъективно видимая яркость свечения сегментов практически одинакова во всех четырех случаях (показалось, что есть едва-едва уловимое уменьшение яркости при возрастании тока и скважности, но оно настолько мало заметно, что я не уверен, что ее существование не плод моей фантазии). Исходя из этого эксперимента, утверждаю, что не правы как те, кто утверждает о субъективном снижении яркости, так и те, кто говорит о ее возрастании. ПРИ ОДНОМ И ТОМ ЖЕ СРЕДНЕМ ТОКЕ ЧЕРЕЗ СЕГМЕНТ ЯРКОСТЬ ПРИМЕРНО ОДИНАКОВА КАК ДЛЯ СТАТИЧЕСКОЙ ИНДИКАЦИИ, ТАК И ДЛЯ ДИНАМИЧЕСКОЙ ПРИ СКВАЖНОСТИ ОТ 1 ДО 8 . На том и закончим с этим вопросом.

Современные светодиодные индикаторы, особенно типов “Super Red” и “Hi Red”, начинают светиться вполне достаточно для помещений уже при токах от 0.5 мА. С учетом этого фактора возникает соблазн организовать ДИ без применения дополнительных ключей, управляя разрядами непосредственно с портов МК, например, как на нижеприведенной схеме.

При этом, ограничительные резисторы подбираются такого номинала, чтобы на «разрядных» выходах суммарный ток не превышал допустимый выходной ток вывода. Тут следует отметить, что хотя существуют разного рода доводы о допустимости превышения выходного тока на «разрядных» выходах ввиду большой скважности протекающего через них тока, я сторонник того, чтобы придерживаться Datasheet производителей, а в них (по крайней мере у Microchip) об этом ничего не сказано, для PIC - это максимум 25 мА. Исходя из этого, скажем так «правильные разработчики» выбирают номинал токоограничительного резистора таким, чтобы ток сегмента был не более 3мА (тогда 8 сегментов, включая точку, в сумме дадут 24 мА). При этом, обычно пользуются

формулой (1)   R=(Upp-Uled)/I,

где Upp – напряжение питания, Uled – падение напряжения на сегменте индикатора, I – ток через сегмент. По ней для Upp=5V и принимая для индикатора красного цвета свечения Uled=1.8V, получают R=(5-1.8)/3=1.067кОм, ближайший из ряда - 1.1кОм.

Однако, получаемый номинал, как будет показано ниже, завышен и ток получится меньше 3 мА, что не очень хорошо в ситуации дефицита тока, а значит, яркости сегмента. Дело в том, что формула (1) не учитывает выходного сопротивления порта, а он имеет значение, особенно для «разрядных» выводов, через которые протекает предельный ток, а значит и падает существенное напряжение. К сожалению, я не нашел в Datasheet для PIC среднего семейства точной величины выходного сопротивления порта. Косвенные вычисления, исходя из сведений из Datasheet, а так же прямые измерения на конкретных чипах, дают результат примерно: при напряжении питания 5V – 20 Ом для состояния порта «0» и 60 Ом для состояния «1», при напряжении питания 3V – соответственно 30 Ом и 80 Ом. В дальнейших выкладках будем ориентироваться на эти значения.

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

формулу (2)  R = (Upp – Uled - I*N*Rout) / I – Rseg,   где N – число включенных разрядов, Rout– выходное "разрядное" сопротивление, Rseg - выходное "сегментное" сопротивление.

Из этой формулы для вычисления тока сегмента для данного ограничительного сопротивления получим

формулу (3)  I = (Upp – Uled) / (R + N*Rout+Rseg).

Вычисляя требуемый для тока 3мА резистор по формуле (2), получим: 846 Ом (ближайший – 820 Ом) для индикатора с ОК и 576 Ом (ближайший 560 Ом) для индикатора с ОА. Согласитесь, было бы обидно установить ток сегмента на 30 – 40 % меньше возможного, когда «каждый миллиампер на счету».

Для более низких напряжений питания эта разница еще больше. Так для питания в 3 Вольта для сегментного тока в 3мА по формуле (2) даже для индикатора с ОК имеем R=(3-1.8-8*30*0.003)/0.003-80=80 Ом, тогда как по упрощенной формуле (1) мы бы имели 400 Ом, то есть ток был бы 1.67 мА вместо допустимых 3 мА!!

Полученное значение R=80 Ом и формула (3) говорят о том, что для низких питающих напряжений максимальные токи определяются уже в большей степени Rout, чем R. Это может означать при разном количестве горящих сегментов (разных индицируемых знаках) разные токи через них и разную их яркость. Например, вычислим для Upp=3V и R=80 Om ток через один сегмент для цифр 1 (светятся два сегмента) и 8 с точкой (8 сегментов) для индикатора с ОК по формуле (3):

I(1) = (3-1.8)/(80+2*30+80) = 5.5 mA

I(8.)= (3-1.8)/(80+8*30+80) = 3 mA

Как видим, разница почти в два раза – это будет довольно заметно, но в некоторых случаях приемлемо. Для уменьшения неравномерности придется уменьшить ток сегмента или же увеличить напряжение питания хотя бы до 3.3 В (разница в токах примерно в 1.5 раза).

Для наблюдения разницы яркости при токах через сегмент в 1, 2 и 4 мА, соответствующие выводы резисторов с выходов PIC12F629 были переключены непосредственно на плюсовую шину.

В заключении, коснемся еще одного вопроса, также нередко обсуждаемого на просторах Интернета – схем, где индикатор подключен к микроконтроллеру вообще без токоограничивающих резисторов, напрямую как сегменты, так и разряды. Исходя из формулы (3), кажется, что это в принципе возможно для малых питающих напряжений. Действительно, для Upp=3V и R=0 имеем:

I(1)=(3-1.9)/(2*30+80)=7.9 mA,  I(8.)=(3-1.8)/(8*30+80)=3.8 mA для индикатора с ОК.

I(1)=(3-1.9)/(2*80+30)=5.8 mA, I(8.)=(3-1.8)/(8*80+30)=1.8 mA для ОА.

Из формул видно, что для индикатора с ОК суммарный ток разрядов превышает допустимый 3.8*8=30.4 мА, но разность яркости 1 и 8 всего в 2 раза. Для ОА ток вполне в пределах нормы, но вот разница в токах сегментов для цифр 1 и 8 слишком велика – в 3 раза, а значит, визуально 1 будет светиться существенно ярче, чем 8, 9 или 6. Вывод: все таки, резисторы нужны при любом напряжении питания.

Надеюсь, изложенные в статье соображения будут кому-то полезными при разработке систем с ДИ.

В приложении кроме упомянутой модели имеется прошивка для тестовой схемы и код в MikroC.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
U1 МК PIC 8-бит
PIC12F629
1 Поиск в LCSCВ блокнот
HL1 ИндикаторFYQ5631A1 Поиск в LCSCВ блокнот
R1 Резистор
3.3 кОм
1 Поиск в LCSCВ блокнот
R2 Резистор
1.6 кОм
1 Поиск в LCSCВ блокнот
R3 Резистор
820 Ом
1 Поиск в LCSCВ блокнот
R4 Резистор
360 Ом
1 Поиск в LCSCВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: Изменена: 26.03.2015 0 1
Я собрал 0 4
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 4.5 Проголосовало: 4 чел.

Комментарии (24) | Я собрал (0) | Подписаться

0
vintik #
В свое время тоже занимался таким вопросом, и есть некое мнение:
Для устранения проблем с изменяющейся яркостью, можно применить посегментную динамическую индикацию. Так же, уходит проблема в применении индикаторов ОК и ОА.
При использовании ультраяркого индикатора с прямым падением в 2.4В(зеленый), ток одного вывода порта будет в пределах допустимого , даже при питании МК напряжением 4.2В(литиевый аккумулятор).
(4.2 – 2.4)/(30+40)=0,0257А – для статического режима.
(30+40) – Ваши данные выходного сопротивления для порта. В цепи участвуют два порта, один коммутирует сегменты, второй разряды.
Для трехразрядного индикатора с посегментной индикацией, постоянный ток для одного пина будет в три раза меньше, - порядка 9мА.

P.S. В течении трех лет использую трехразрядный (посегментная) термометр с питанием от литиевого аккумулятора. Мгновенный ток одного пина около 40мА
Пока нареканий нет, работает…
Ответить
+2
Zlodey #
А я делаю вот так, чтобы разгрузить пины МК
Прикрепленный файл: 3515__________.jpg
Ответить
0
vintik #
Всего лишь программными средствами, можно освободить три ножки, и оставить по одному резистору на каждый разряд
Ответить
0
Zlodey #
Я стараюсь не экономить выводы, а делать устройства как положено. Ток 40 мА - это диапазон Absolute Maximum Ratings, в нём уже нельзя работать. А если снизить ток до 20 мА, то посегментная индикация получится очень тусклая.
Ответить
0
zeconir #
Я в таких случаях просто ставлю ключи на транзисторах (КТ315 - идеальный вариант: их везде немеряно).
Ответить
0
Zlodey #
Транзисторы - это уже совсем другая история, как говорится. Мой вариант позволяет обойтись и без применения транзисторов, и без перегрузки ног
Ответить
+1

[Автор]
diogen_b #
Zlodey, очень правильный, с моей точки зрения, подход. При наличии свободных выводов и небольшом количестве разрядов, конечно.
Ответить
0

[Автор]
diogen_b #
По-моему, посегментная индикация имеет только одно неоспоримое преимущество - меньшее количество резисторов, да и то, при небольшом количестве разрядов. Неравномерность здесь тоже присутствует, ведь текущий сегмент может присутствовать как в одном разряде, так и в 4-х.
Насчет превышения пиковым током предельного для вывода в 2 раза, я в статье упоминал: считаю, что это в ущерб надежности и работа одного отдельно взятого устройства несколько лет мало что доказывает. Хотя, конечно, для любительских конструкций такие решения наверное имеют право на жизнь.
Отредактирован 24.03.2015 21:13
Ответить
0
vintik #
Неравномерность здесь тоже присутствует, ведь текущий сегмент может присутствовать как в одном разряде, так и в 4-х
Нет, в единицу времени работает только один сегмент.
По поводу надежности,- думаю, производители перестраховались раза в два, когда заявили о пределе в 25мА на ногу. Зачем им неприятности.
Ответить
0
Zlodey #
Неприятностей у них не будет. Если и будут, то только у вас - в виде отгоревших портов
Ответить
0
vintik #
Аргумент хороший, и возразить тяжело.
Сам стараюсь придерживаться "как положено", но постоянно тянет в сторону.
Нашел видео, там даже не 3, а 4 разряда. Если снизить ток в половину, то яркость останется еще приемлемая.
Прикрепленный файл: T1023.rar
Ответить
0
Zlodey #
Каждый день вижу как людей тянет на неправильный путь. Вместо 3,3 вольт подают 5, превышают ток в разы, подключают светодиоды без резисторов. Оно работает, но иногда недолго. А иногда вызывает пожар. А иногда просто ломается не вовремя. На себе экономить не нужно
Ответить
0

[Автор]
diogen_b #
При напряжении питания 3-3.3 В "метод Винтика" без резисторов вполне реально использовать - и ток будет 15-20 мА и яркость при 3-4 разрядах для помещения, думаю, вполне сгодится. Несколько смущает скважность сигнала на одном сегменте - 1 к 32, многовато, и интервал прерываний придется сильно уменьшать. Ради интереса, как нибудь надо будет попробовать...
Отредактирован 25.03.2015 16:59
Ответить
0
vintik #
Пришлось перебороть лень, раскрутил термометр впаял в цепь первого разряда резистор Rs=1Ом.
Похоже, с током через порты ошибался. По измерениям получилось всего 16.4мА
На картинке все расписано.
Прикрепленный файл: нагрузка портов.GIF
Ответить
0

[Автор]
diogen_b #
Очень интересно... Особенно такое высокое сопротивление выхода в состоянии "1". Правда, не совсем понятны формы и длительности сигналов.
Но вернемся к выходному сопротивлению. Я, под впечатлением выкладок Vintik-а, тоже не поленился и еще раз провел измерения на PIC12F629 в статическом состоянии по схеме: порт в состоянии "1" - резистор - светодиод - порт в состоянии "0". Оказалось, что я сильно ошибался (не пойму как так получилось) в выходном сопротивлении порта в состоянии логического 1. При токе 10 мА получил такие значения: питание 5В - состояние "0" - 20 Ом, состояние "1" - 60 Ом; питание 3В - состояние "0" - 30 Ом, состояние "1" - 80 Ом.
Уже отправил на модерацию измененную в соответствии с этими данными статью.
Ответить
0
vintik #
В описании есть фраза(см. картинку).
Может ее нужно понимать, как прямое управление светодиодами, при условии не превышения тока одного порта(200мА) или одной ножки(25мА)?
Выходит, в нашем случае можно обходиться без резисторов.
-----
Период обновления индикатора 4.096мс. Соответственно, один разряд 1.024мс, сегмент 128мкс
Прикрепленный файл: LEDdriver.GIF
Ответить
0
vintik #
Правда, не совсем понятны формы и длительности сигналов.
Вот более подробная картинка
Прикрепленный файл: нагрузка портов2.GIF
Ответить
0

[Автор]
diogen_b #
Спасибо! Последовательность опроса была ясна сразу, вот только спросонья вчера не дошло, что через измерительный резистор течет ток не одного сегмента, а всех сегментов одного разряда.
Может ее нужно понимать, как прямое управление светодиодами, при условии не превышения тока одного порта(200мА) или одной ножки(25мА)?
Думаю, слово "direct" тут подразумевает не "напрямую без резистора", а "напрямую без усилительных ключей".
Ответить
0
vintik #
diogen_b спасибо Вам за статью, для меня она оказалась очень полезной, заставив вернуться и углубиться в рассматриваемый вопрос. Еще, было бы интересно узнать о взаимном влиянии нагрузки, как между выходами одного порта, так и между выходами разных портов. А так же о методах увеличения нагрузочной способности, путем соединения выходов в параллель (этот метод применил Zlodey и был Вами одобрен), о его достоинствах и может быть недостатках. Вопросов – еще на одну статью, надеюсь на продолжение.

Еще, хотелось бы узнать Ваше мнение по ниже приведенной моей "выкладке".
Возьмем простой стеклянный плавкий предохранитель. Допустим, перегорает он при токе 5А за 0.1сек.
Ток, проходя по плавкой вставке в течение 0.1 сек, совершает работу, выделяющуюся в виде тепла достаточного для ее расплавления.
Но на токе 2.5А, предохранитель работает годами,- выделяемое тепло успевает отводиться через контакты.
А если пропустить ток в два раза больше(10А) максимального, но длительностью в 10 раз меньше(0.01сек), предохранитель сгорит? Нет, ток выполнит работу в два раза меньшую от необходимой для расплавления плавкой вставки. Но, максимальный ток превышен в два раза, и запас остался, и тепло успевает отводиться.
Вернемся к драйверам портов.
Выход порта собран на полевых транзисторах, смотрим импульсный ток на любой попавшийся полевой транзистор. Он будет больше, как минимум в 4 раза от номинального. Не думаю, что "микрочиповцы" применяют транзисторы сделанные из другого "теста".
Собственно из вышеперечисленных соображений считаю, что ток на одну ножку безболезненно можно увеличить до 50ма, при скважности равной четырем.

П.С. Из личного опыта: Бывали случаи "корочения" выхода (по ошибке монтажа) на землю, - корпус МК нагревался. После устранения ошибки, выход работал без изменения своих характеристик. Запас прочности все-таки есть.
Ответить
+1

[Автор]
diogen_b #
Большое Вам спасибо! О продолжении подумаю...

По Вашим выкладкам. Вы совершенно правы, что при увеличении тока в 2 раза и скважности 4 количество выделяющегося тепла не изменится. А так же оно не изменится при увеличении тока в 10 раз и скважности 100 и т.д., но это же не означает, что это допустимо! К тому же, проблема в том, что предельные 25 мА вывода, указанные в datasheet от Microchip, в некотором смысле уже пиковое значение - там есть примечание, что это предельные значения и долговременная работа в этом режиме не предусмотрена (см. прикрепленный файл).
Лично мое мнение: мы можем изготовить для себя некое устройство с некоторым превышением предельных параметров и оно, вероятно, будет долго нас радовать своей работой, но когда мы публикуем схему для повторения другими, мы не имеем права на такие вольности.
Еще раз спасибо за интерес к статье!
Прикрепленный файл: limits.jpg
Ответить
0
vintik #
Как то неубедительно.
Но все равно, спасибо, за высказанное мнение.
Ответить
0
Сергей #
Непонятно зачем городить схемы и так ясно, что при равных токах и яркость равна. А так немного есть и полезного.
Ответить
0
Сергей #
Непонятно зачем городить схемы и так ясно, что при равных токах и яркость равна. А так немного есть и полезного.
Ответить
0

[Автор]
diogen_b #
Уважаемый, я рад, что Вам "и так ясно", но уверяю Вас, не все в этом вопросе так просто - глаз человека совсем не линейное "субъективное устройство". Лично мне казалось, что субъективно яркость с увеличением тока и скважности должна расти... Чтобы не казалось, что "все и так ясно" всем посмотрите здесь и здесь
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Макетная плата для пайки (10 шт) Катушка Тесла
вверх