Мультиплексирование светодиодов tinyAVR

January 3, 2015 by admin Комментировать »

Чтобы отображать изображения или текст, светодиодами необходимо управлять. В главе 2 мы показали, как управлять светодиодами при помощи контактов микроконтроллера. Мы подключали по одному светодиоду к одному выводу. В зависимости от способа подключения светодиода (к источнику питания или к общей шине) светодиод можно было включать при помощи установки на контакте сигнала "Г’ или ”0". Интенсивность света от светодиода регулировалась при помощи ШИМ-сигнала на контакте микроконтроллера. Однако подключение к одному выводу микроконтроллера только одного светодиода слишком расточительно. Вместо этого можно применять мультиплексирование— управление светодиодами при помощи разделения времени. На рис. 3.2 показан пример мультиплексирования: для управления девятью светодиодами используются три строки и три столбца. Каждый столбец и каждая строка подключены к выводу микроконтроллера. Поэтому при помощи шести контактов мы можем управлять девятью светодиодами. Эту схему можно распространить и на большее количество строк и столбцов. Однако для максимального использования контактов рекомендуется по возможности выдерживать одинаковое число строк и столбцов. До какой степени можно развивать этот подход? Можно ли управлять, например, 225 светодиодами при помощи матрицы размером 15×15? Ограничение— максимальный ток светодиодов, которые применяются для такого дисплея.

Давайте сначала рассмотрим работу мультиплексированного дисплея (рис. 3.2). Светодиоды соединены проводами в ряды и столбцы. Каждая строка и каждый столбец подключены к выводам микроконтроллера.

Для включения конкретного светодиода его столбец нужно подключить к источнику питания Vcc, а его строку— к заземлению Gnd. В цепи от Vcc до светодиода должны быть ограничивающие ток резисторы. После того, как столбец подключен к Vcc, светодиоды этого столбца можно включить путем подключения соответствующих строк к общей шине (при помощи микроконтроллера). Например, если подключить столбец 1 к Vcc, а строки 1 и 3 — к обшей шине, то будут включены светодиоды LED1 и LED7. Предположим, что нужно включить LED1, LED2 и LED5. Для этого следует подключить к Vcc столбец 1 (для LED1) и столбец 2 (для LED2 и LED5), а к общей шине — строку 1 (для LED1 и LED2) и строку 2 (для LED5). Однако если на эти строки и столбцы подать указанные напряжения, то загорится также и LED4, поскольку столбец 1 находится под напряжением Vcc, а строка 2 заземлена! Поэтому во избежание включения ненужных светодиодов напряжения на строки и столбцы подаются особым образом.

Рис. 3.2. Пример мультиплексирования светодиодов

На время Т на столбец 1 подается Vcc, а столбцы 2 и 3 заземляются. В течение этого интервала времени на строку 1 подается заземление (если нужно включить LED1); в противном случае на нее подается Vcc. Если нужно включить LED4, то строка 2 заземляется; в противном случае на нее нужно подать Vcc. И наконец, если нужно включить LED7* то следует заземлить строку 3; в противном случае на строку 3 следует подать Vcc. По истечении первого периода времени Т начинается второй интервал времени Г, в течение которого столбец 1 заземляется, на столбец 2 подается Vcc, столбец 3 заземляется, а на строки 1, 2 и 3 подается Vcc или земля, в зависимости от того, что нужно сделать со светодиодами LED2, LED5 и LED8 (включить или выключить). Затем начинается третий интервал (опять продолжительностью Т) и в этот период столбцы 1 и 2 заземляются, а на столбец 3 подается Vcc. Строки 1, 2 и 3 или заземляются, или на них подается Vcc (в зависимости от того, что нужно сделать с LED3, LED6 и LED9 — включить или отключить). После завершения интервала времени Т весь* цикл повторяется опять.

Какова продолжительность периода ΊΊ Это зависит от числа столбцов. Каждый столбец должен включаться каждые 100 Гц или чаще. В случае трех столбцов 3Т- 10 мс (10 мс — период 100 Гц). Поэтому Т – 3,3 мс.

Ограничивающий ток резистор может быть подключен либо к катоду (как на рис. 3.3), либо к аноду (как на рис. 3.4). Однако это размещение резистора определяет номинал переключателей на высокой (SI, S2 й S3) и низкой (S4, S5 и S6) сторонах. Для переключения Vcc (высокого потенциала) требуется биполярный р-п-ртранзистор или p-канальный полевой транзистор. Для переключения заземления (низкого потенциала) требуется л-р-и-транзистор или и-канальный транзистор типа MOSFET.

Давайте рассмотрим пример расчета транзисторных ключей высокого и низкого потенциалов, когда ограничивающие ток резисторы подключены последовательно с катодами светодиодов (см. рис. 3.3).

Рис. 3.3. Подключение токоограничительного резистора к катоду

Рис. 3.4. Подключение токоограничительного резистора к аноду

На этой схеме ключ S1 включается на период Г, во время которого включаются ключи S2 и S3. Ток через светодиод определяется напряжением питания Uun (Vcc), падением напряжения на светодиоде и последовательно включенным резистором (если падение напряжения на коммутирующих элементах пренебрежимо мало):

где R — это последовательно включенное сопротивление. Однако это максимальный ток. Средний ток через светодиод меньше в N раз, где N— число столбцов (в нашем случае ЛЬ3). Для создания требуемого тока значение сопротивления нужно уменьшить в эти N раз (увеличив таким образом пиковый ток). Однако пиковый ток не может увеличиваться произвольно, поскольку в какой-то момент он превзойдет максимальный ток светодиода.

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

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

Значение R следует выбирать таким, чтобы пиковый ток через светодиод никогда не превышал 120 мА. Если число столбцов равно десяти, то средний ток (благодаря мультиплексированию) составит 12 мА, что не превышает среднего значения тока. Мы можем увеличить число столбцов до 20 за счет снижения среднего тока (и следовательно, интенсивности свечения светодиодов). Влияние последовательно подключенного к катоду ограничивающего ток резистора (как показано на рис. 3.3) состоит в том, что ключи S4, S5 и S6 будут работать на таком максимальном токе, который равен пиковому току светодиода (в данном случае 120 мА). Ключи SI, S2 и S3 должны быть способны работать на 360 мА каждый. Обычно п- р-п-транзистор или η-канальный транзистор типа MOSFET могут обеспечить более высокий ток, чем соответствующий р-п-ртранзистор или /7-канальный MOSFET. Вместо последовательно подключенного к катоду ограничивающего ток резистора, мы можем подключить резистор последовательно с анодом (рис. 3.4). Однако для этого потребуется соответствующее изменение в схеме мультиплексирования. Вместо подключения столбца к Vcc нам придется подключать строку к заземлению на период времени Г и (в зависимости от того, какой светодиод нам нужно зажечь) подключать соответствующий столбец к Vcc. В следующий период времени Т к заземлению подключается следующая строка и т. д. Переключатели столбцов (S1, S2 и S3) должны теперь выдерживать максимальный ток 120 мА, а переключатели строк — 360 мА. Однако ключи общей шины будут реализованы при помощи п-р- η-транзисторов (или η-канальных MOSFET), которые более доступны, чем аналогичные им р-п-р или /7-канальные MOS-транзисторы.

А что, если число светодиодов гораздо больше, чем можно организовать в одну матрицу из строк’и столбцов? Увеличение размера матрицы светодйодов— это проблема (как уже обсуждалось ранее), поскольку пиковый прямой ток светодиодов не позволяет увеличивать размер дисплея сверх определенного предела. В такой ситуации можно реализовать несколько Матриц из светодиодов, управляемых независимыми строками и столбцами (рис. 3.5).

Рис. 3.5. Объединение матриц светодиодов

Теперь может не хватить контактов микроконтроллера. Вместо микроконтроллера с большим числом контактов можно добавить внешние сдвиговые регистры. На рис. 3.6 показана схема для увеличения числа управляющих выходов при помощи сдвигового регистра (например, 74НС164 или 74НС595).

Рис. 3.6. Увеличение числа управляющих выходов с помощью регистра

Два 8-разрядных сдвиговых регистра обеспечивают восемь битов выходных данных. Кроме того, эти сдвиговые регистры можно каскадировать и получить 16 или 24 бита данных (рис. 3.7). Сдвиговые регистры позволяют подключить большое число светодиодов (либо напрямую к каждому контакту, либо при помощи мультиплексирования), но не могут поддерживать ток, для этого потребуются дополнительные транзисторы.

На рис. 3.7 показана схема, в которой три выходных контакта микроконтроллера использованы для получения 16 выходных контактов. Однако нужна программа для сдвига 16 битов данных в 16 выходных контактов. Эта программа должна начинать со сброса двух сдвиговых регистров (генерируя импульс на контакте РВО), а затем выдавать нужные данные на вход верхнего сдвигового регистра. Нижний сдвиговый регистр получает свои данные из сигнала Qh верхнего сдвигового регистра. После установки нужного логического сигнала на том контакте микроконтроллера, который подключен к входу сдвигового регистра, данные в регистре сдвигаются (по тактовому импульсу на тактовом входе сдвигового регистра — это контакт РВ1 микроконтроллера). Каждый тактовый импульс сдвигает данные из входа в Qa, из Qa в Qb и т. д. После 16 импульсов тактовой частоты первый бит данных появляется на контакте Qh нижнего сдвигового регистра. То есть для вывода любых данных нам нужно 16 импульсов тактовой частоты.

Рис. 3.7. Каскадирование сдвиговых регистров

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

По сравнению с рис. 3.7, теперь требуется восемь сигналов тактовой частоты (поскольку ввод данных в два сдвиговых регистра настраивается микроконтроллером по отдельности).

Давайте же применим полученные нами знания для разработки реальной схемы. Одна из самых популярных конфигураций светодиодов — точечно-матричный дисплей 5×7. Внутренняя структура такого дисплея показана на рис. 3.9.

Рис. 3.8. Схема с уменьшенным числом тактов

Рис. 3.9. Структура светодиодного дисплея 5×7

Аноды светодиодов подключены к столбцам, а катоды — к строкам. Однако есть и дисплеи 5×7 с подключением к анодам — строк, а к катодам — столбцов. При работе со светодиодными матрицами необходимо обращать внимание на их конфигурацию.

На рис. 3.10 показан способ подключения матрицы светодиодов к микроконтроллеру AVR. У дисплея анод подключен к столбцам, а катод — к строкам. В этой конструкции используется способность микроконтроллера AVR коммутировать ток до 40 мА. Аноды подключены к Vcc через р-и-р-транзисторы (по одному).

Рис. 3.10. Подключение матрицы светодиодов к микроконтроллеру

В зависимости от того, какой светодиод в данном столбце необходимо зажечь, соответствующая строка подключается к общей шине через контакт микроконтроллера. Резистор R подобран для ограничения тока через светодиод до 40 мА (поскольку именно такой ток выдерживает контакт микроконтроллера AVR). Для включения столбца на соответствующем контакте порта (подключенного к базе транзистора) выставляется логический 0. Это приводит к включению р-п-р– транзистора и позволяет току течь через светодиоды. Поскольку столбцов пять, то рабочий ток через светодиод столбца составляет 20%. Поэтому средний ток через светодиод составляет 20% от 40 мА, т. е. 8 мА. Такая схема подходит только для небольших дисплеев. Для более крупных дисплеев (у которых более высокие средние и пиковые токи) потребуется иная схема, обеспечивающая больший ток.

На рис. 3.11 изображена схема для увеличения пикового тока через светодиоды (с ключами на основе я-р-я-транзисторов). ULN2003 — это интегральная схема с семью η-ρ-я-каскадами и логическим входом. Каждый выход этой схемы может работать с током до 500 мА. Теперь величину сопротивления токоограничительного резистора R можно уменьшить, что обеспечит более высокий пиковый ток на каждый светодиод.

Рис. 3.11. Схема для увеличения тока через светодиоды

Рис. 3.12. Еще один пример схемы для увеличения тока светодиодов

На рис. 3.12 приведена аналогичная схема, однако здесь применяются п-р-п- транзисторы.

В этой схеме все строки активированы при помощи логической 1 на входе базы и-/?-л-транзистора и в зависимости от того, какой светодиод этой строки должен быть включен в логическую 1, включаются соответствующие аноды. Номинал сопротивления по-прежнему подбирается так, чтобы ограничить ток до 40 мА (поскольку ток поступает напрямую с контактов микроконтроллера). Однако в этой схеме рабочий ток составляет 1/7 (поскольку строк семь) и средний ток через светодиод равен примерно 6 мА, что гораздо меньше, чем средний ток в показанной ранее схеме с /7-п-р-транзисторами. Однако, поскольку здесь использованы п-р-п- транзисторы, схема подходит лишь для небольших дисплеев.

На рис. 3.13 приведена схема подключения к микроконтроллеру AVR точечно- матричного дисплея 16×16 со сдвиговыми регистрами и декодером. На блок-схеме не показаны усиливающие ток транзисторы, которые требуются для коммутации как высокого, так и низкого потенциалов.

Рис. 3.13. Подключение к микроконтроллеру матричного дисплея 16×16

Особенность этой схемы — наличие декодера 74154 с 16 активными выходами, которые подходят для управления />-л-р-транзисторами или /7-канальными MOS- транзисторами. Дополнительный сигнал с микроконтроллера AVR служит для отключения декодера (при помощи сигналов G1/G2). Пара каскадных сдвиговых регистров выдает 16 выходных сигналов (для управления 16 строками дисплея). Включение конкретных столбцов дисплея выполняется просто: необходимо установить входы декодера в требуемое состояние; если нужно активировать самый левый столбец (столбец номер 0), то на вход декодера подается логическая комбинация ABCD=0000. Для включения столбца 1 подается ABCD=0001 и т. д. Для включения декодера на вход G1/G2 подается логический 0. Если нужно отключить все столбцы, то на вход G1/G2 подается логическая 1. Для изменения столбцов нужно сначала отключить декодер (установив на входе G1/G2 логическую 1), а затем в сдвиговые регистры сдвинуть новые значения для 16 строк (помните, что для этого потребуется 16 импульсов тактовой частоты), а затем активировать новый столбец (при помощи установки входов декодера ABCD), после чего включить сам декодер (установив на входе G1/G2 логический 0). Для реализации рассмотренной схемы потребуется также 16 р-п-р-транзисторов (или /7-канальных MOSFET) на выходе декодера и 16 л-р-л-транзйсторов (или η-канальных MOSFET) на выходе сдвиговых регистров.

Несмотря на то, что на рис. 3.10-3.12 приведены методы управления точечно- матричными дисплеями 5×7 при помощи микроконтроллеров AVR, их можно использовать и для семисегментных, и для алфавитно-цифровых индикаторов (которые также часто встречаются). На рис. 3.14 изображен семисегментный дисплей (слева) и два типа алфавитно-цифровых дисплеев (в центре и справа). Каждый сегмент дисплея промаркирован буквой. Сегменты семисегментного дисплея помечены буквами от А до G, а десятичная точка — dp. Фактически в нем восемь сегментов (включая десятичную точку), но в литературе и спецификациях такой дисплей называется семисегментным. Алфавитно-цифровые дисплеи бывают двух типов: с 14 или 16 сегментами (не считая десятичной точки).

Рис. 3.14. Примеры светодиодных дисплеев

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

Рис. 3.15. Включение светодиодов семисегментного дисплея

Рис. 3.16. Управление несколькими семисегментными дисплеями

Каждый точечно-матричный дисплей 5×7 можно заменить пятью семисегментными дисплеями. Способ управления восемью семисегментными дисплеями иллюстрирует рис. 3.16. В данной схеме сдвиговый регистр 74164 управляет сегментами семисегментного дисплея, а декодер 74138— общими анодами дисплеев. Буферные транзисторы здесь опять не показаны.

Источник: Гадре, Д., Занимательные проекты на базе микроконтроллеров tinyAVR / Дхананья Гадре, Нигул Мэлхотра: Пер. с англ. — СПб.: БХВ-Петербург, 2012. — 352 с.: ил. — (Электроника)

Оставить комментарий

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