Оглавление:

Светодиоды Charlieplexing - теория: 7 шагов (с изображениями)
Светодиоды Charlieplexing - теория: 7 шагов (с изображениями)

Видео: Светодиоды Charlieplexing - теория: 7 шагов (с изображениями)

Видео: Светодиоды Charlieplexing - теория: 7 шагов (с изображениями)
Видео: Пример проекта "Индикатор уровня". 2024, Июнь
Anonim
Светодиоды Charlieplexing - теория
Светодиоды Charlieplexing - теория
Светодиоды Charlieplexing - теория
Светодиоды Charlieplexing - теория

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

Что такое «Чарлиплекс»? Он управляет множеством светодиодов с помощью всего лишь нескольких контактов. Если вам интересно, Charlieplexing назван в честь Чарльза Аллена из компании Maxim, который разработал эту технику. Это может быть полезно для многих вещей. Возможно, вам потребуется отобразить информацию о состоянии на небольшом микроконтроллере, но у вас будет только несколько свободных контактов. Вы можете захотеть показать причудливую точечную матрицу или дисплей часов, но не хотите использовать много компонентов. Некоторые другие проекты, демонстрирующие чарлиплексирование, вы, возможно, захотите посмотреть: Как управлять множеством светодиодов с нескольких выводов микроконтроллера. от Westfw: - https://www.instructables.com/id/ED0NCY0UVWEP287ISO/ И пара моих собственных проектов, часы Microdot: - https://www.instructables.com/id/EWM2OIT78OERWHR38Z/ Часы Minidot 2: - https://www.instructables.com/id/E11GKKELKAEZ7BFZAK/ Еще один интересный пример использования Charlieplexing находится по адресу: https://www.jsdesign.co.uk/charlie/ Часы Minidot 2 представляют расширенную схему Charlieplexing для затухание / затемнение, которые здесь не обсуждаются. ОБНОВЛЕНИЕ 19 августа 2008: Я добавил zip-файл со схемой, которая может использовать матричное шарлиплексирование для светодиодов высокой мощности, обсуждаемых (подробно:)) в разделе комментариев. Он имеет кнопку + датчик положения для пользовательского интерфейса, а также схему для компьютерного управления через USB или RS232. Для каждой шины высокого напряжения можно установить одно из двух значений напряжения, скажем, 2,2 В для КРАСНЫХ светодиодов и 3,4 В для зеленого / синего / белого. Напряжение для боковых шин высокого давления можно установить с помощью подстроечного резистора. Я бы предположил, что 20-жильный ленточный кабель IDC должен быть подключен к плате, а 20-контактные разъемы IDC добавлены по длине ленты, причем каждая светодиодная плата имеет связи с любыми проводами в матрице. Схема находится в Eagle Cad и визуализирована на изображении ниже. Схема высокого напряжения реализована с помощью оптопар, которые, как мне кажется, могут подойти. Я на самом деле не тестировал эту схему и не писал никакого программного обеспечения из-за нехватки времени, но оставил это для комментариев, меня особенно интересует реализация оптопары. Любой, кто достаточно храбр, чтобы попробовать… пожалуйста, опубликуйте свои результаты. ОБНОВЛЕНИЕ 27 августа 2008: Для тех, кто не использует EagleCad…. Ниже добавлена схема в формате PDF.

Шаг 1. Немного теории светодиодов

Немного теории светодиодов
Немного теории светодиодов
Немного теории светодиодов
Немного теории светодиодов

Charlieplexing опирается на ряд полезных аспектов светодиодов и современных микроконтроллеров.

Во-первых, что происходит, когда вы подключаете светодиод к электричеству. На основной диаграмме ниже показано то, что называется кривой If v Vf для типичного 5-миллиметрового светодиода малой мощности. Если означает «прямой ток», Vf означает «прямое напряжение». Вертикальная ось в других словах показывает ток, который будет протекать через светодиод, если вы приложите напряжение по горизонтальной оси к его клеммам. Это работает и наоборот: если вы измеряете, что ток имеет какое-то значение, вы можете посмотреть на горизонтальную ось и увидеть напряжение, которое светодиод будет подавать на его клеммах. Вторая диаграмма показывает схематическое изображение светодиода с пометками If и Vf. На основной диаграмме я также пометил области графика, которые представляют интерес. - В первой области светодиод не горит. Точнее, светодиод излучает свет настолько тускло, что вы не сможете его увидеть, если у вас нет какого-то супер-пупер усилителя изображения. - Во второй области есть светодиод, который немного тускло светится. - В третьей области обычно работает светодиод, излучающий свет в соответствии с рейтингом производителя. - Четвертая область - это то место, где светодиод работает за пределами своих рабочих пределов, вероятно, светится очень ярко, но, увы, только на короткое время, прежде чем волшебный дым внутри улетучится, и он больше не будет работать… то есть в этой области он перегорит, потому что через него протекает слишком много тока. Обратите внимание, что кривая If / Vf или рабочая кривая светодиода является «нелинейной» кривой. То есть это не прямая линия… на ней есть изгиб или перегиб. Наконец, эта диаграмма предназначена для типичного 5-миллиметрового красного светодиода, рассчитанного на работу при 20 мА. Разные светодиоды от разных производителей имеют разные рабочие характеристики. Например, на этой диаграмме при 20 мА прямое напряжение светодиода будет примерно 1,9 В. Для синего светодиода 5 мм при 20 мА прямое напряжение может составлять 3,4 В. Для мощного белого светодиода luxeon при 350 мА прямое напряжение может составлять около 3,2 В. Некоторые пакеты светодиодов могут состоять из нескольких светодиодов, включенных последовательно или параллельно, что снова меняет кривую Vf / If. Обычно производитель указывает рабочий ток, при котором безопасно использовать светодиод, и прямое напряжение при этом токе. Обычно (но не всегда) вы получаете график, похожий на приведенный ниже в таблице данных. Вам нужно посмотреть техническое описание светодиода, чтобы определить, какое прямое напряжение при разных рабочих токах. Почему этот график так важен? Потому что он показывает, что когда на светодиоде присутствует напряжение, ток, который будет течь, будет соответствовать графику. Уменьшите напряжение, и ток будет меньше…..и светодиод погаснет. Это часть теории чарлиплекса, к которой мы вернемся на следующем шаге.

Шаг 2: законы (электроники)

Законы (электроники)
Законы (электроники)
Законы (электроники)
Законы (электроники)
Законы (электроники)
Законы (электроники)

Мы еще не дошли до волшебства чарлиплексинга … нам нужно перейти к некоторым основам законов электроники. Первый интересующий закон гласит, что полное напряжение на любой серии подключенных компонентов в электрической цепи равно сумме отдельных напряжения на компонентах. Это показано на основной диаграмме ниже. Это полезно при использовании светодиодов, потому что средняя батарея или выходной контакт микроконтроллера никогда не будут иметь именно то напряжение, которое нужно для работы светодиода при рекомендуемом токе. Например, микроконтроллер обычно работает при 5 В, а его выходные контакты при включении будут на 5 В. Если вы просто подключите светодиод к выходному контакту микроконтроллера, вы увидите из рабочей кривой на предыдущей странице, что через светодиод будет протекать слишком большой ток, он нагреется и перегорит (возможно, также повредит микроконтроллер). Однако, если мы введем второй компонент последовательно со светодиодом, мы сможем вычесть часть 5 В, чтобы оставшееся напряжение было правильным для запуска светодиода при правильном рабочем токе. Обычно это резистор, который при таком использовании называется токоограничивающим резистором. Этот метод используется очень часто и приводит к так называемому «закону Ома» … названному в честь г-на Ома. Закон Омса следует уравнению V = I * R, где V - напряжение, которое появится на сопротивлении R, когда ток I протекает через резистор. V - в вольтах, I - в амперах, а R - в омах. Итак, если у нас есть 5 В, которые нужно потратить, и мы хотим, чтобы на светодиоде было 1,9 В, чтобы он работал при 20 мА, тогда мы хотим, чтобы резистор имел 5-1,9 = 3,1 V поперек него. Мы можем видеть это на второй диаграмме. Поскольку резистор включен последовательно со светодиодом, через резистор будет протекать тот же ток, что и через светодиод, то есть 20 мА. Итак, изменив уравнение, мы можем найти сопротивление, необходимое нам для работы. V = I * RsoR = V / I Подставляя значения в нашем примере, мы получаем: R = 3,1 / 0,02 = 155 Ом (примечание 20 мА = 0,02 А) Все еще со мной пока что… круто. Теперь посмотрим на диаграмму 3. На ней светодиод зажат между двумя резисторами. Согласно первому закону, упомянутому выше, мы имеем такую же ситуацию на второй диаграмме. У нас есть 1,9 В на светодиоде, поэтому он работает в соответствии со спецификациями. У нас также есть каждый резистор с вычитанием 1,55 В каждый (всего 3,1). Сложив напряжения вместе, мы получаем 5 В (вывод микроконтроллера) = 1,55 В (R1) + 1,9 В (светодиод) + 1,55 В (R2), и все уравновешивается. Используя закон Ом, мы находим, что резисторы должны быть на 77,5 Ом каждый, что составляет половину суммы, рассчитанной по второй диаграмме. Конечно, на практике вам будет сложно найти резистор 77,5 Ом, поэтому вы просто замените ближайшее доступное значение, скажем, 75 Ом, и получите немного больше тока в светодиод или 82 Ом, чтобы быть в безопасности и иметь немного меньше. Зачем нам делать этот резисторный сэндвич для управления простым светодиодом … ну, если у вас есть один светодиод, это все немного глупо, но это инструкция по Charlieplexing и это пригодится для следующего шага.

Шаг 3. Представляем «дополнительный привод»

Представляем "дополнительный привод"
Представляем "дополнительный привод"

Другое название, которое более точно описывает «чарлиплексинг», - «дополнительный драйв».

В вашем среднем микроконтроллере вы можете в прошивке указать микроконтроллеру, чтобы он установил выходной контакт на «0» или «1», или чтобы представить напряжение 0 В на выходе или напряжение 5 В на выходе. На приведенной ниже диаграмме теперь показан зажатый светодиод с перевернутой стороной… или дополнительный светодиод, следовательно, дополнительный привод. В первой половине схемы микроконтроллер выдает 5 В на вывод A и 0 В на вывод B. Таким образом, ток будет течь от A к B. Поскольку LED2 ориентирован назад к LED1, через него не будет протекать ток, и он не будет светиться. Это то, что называется обратным смещением. У нас есть аналог ситуации на предыдущей странице. Мы можем игнорировать LED2. Стрелки показывают текущий поток. Светодиод - это, по сути, диод (отсюда и светоизлучающий диод). Диод - это устройство, которое позволяет току течь в одном направлении, но не в другом. Схема светодиода показывает это, ток будет течь в направлении стрелки …… но заблокирован в другом направлении. Если мы проинструктируем микроконтроллер на вывод 5 В на вывод B и 0 В на вывод A, мы получим обратное. Теперь LED1 смещен в обратном направлении, LED2 смещен в прямом направлении и позволяет току течь. LED2 загорится, а LED1 погаснет. Теперь было бы неплохо взглянуть на схемы различных проектов, упомянутых во введении. Вы должны увидеть множество этих дополнительных пар в матрице. Конечно, в приведенном ниже примере мы управляем двумя светодиодами с двумя выводами микроконтроллера… Вы могли бы сказать, зачем беспокоиться. Что ж, следующий раздел - это то, где мы переходим к тонкостям Charlieplexing и тому, как он эффективно использует выходные контакты микроконтроллера.

Шаг 4: Наконец….a Charlieplex Matrix

Наконец….a Charlieplex Matrix
Наконец….a Charlieplex Matrix
Наконец….a Charlieplex Matrix
Наконец….a Charlieplex Matrix

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

Что ж, мы можем расширить идею комплементарного привода до матрицы Чарлиплекса. На приведенной ниже диаграмме показана минимальная матрица Charlieplex, состоящая из трех резисторов и шести светодиодов и использующая только три вывода микроконтроллера. Теперь вы видите, насколько удобен этот метод? Если вы хотите управлять шестью светодиодами обычным способом… вам понадобится шесть выводов микроконтроллера. Фактически с N контактами микроконтроллера вы потенциально можете управлять N * (N - 1) светодиодами. Для 3 контактов это 3 * (3-1) = 3 * 2 = 6 светодиодов. Вещи быстро складываются с большим количеством булавок. С 6 контактами вы можете управлять 6 * (6 - 1) = 6 * 5 = 30 светодиодами….вау! Теперь перейдем к делу Чарлиплекса. Посмотрите на диаграмму ниже. У нас есть три дополнительных пары, по одной паре между каждой комбинацией выводов микровывода. Одна пара между A-B, одна пара между B-C и одна пара между A-C. Если вы отключите контакт C на данный момент, мы получим ту же ситуацию, что и раньше. Если 5 В на контакте A и 0 В на контакте B, LED1 будет светиться, LED2 смещен в обратном направлении и не будет проводить ток. При 5V на контакте B и 0V на контакте A LED2 будет светиться, а LED1 будет смещен в обратном направлении. Это следует для других микропинов. Если мы отключим контакт B и установим контакт A на 5 В, а контакт C на 0 В, тогда LED5 будет светиться. Поменяйте местами так, чтобы на контакте A было 0 В, а на контакте C было 5 В, тогда LED6 будет светиться. То же самое для дополнительной пары между контактами B-C. Подожди, я слышал, ты говоришь. Давайте подробнее рассмотрим второй случай. У нас 5V на контакте A и 0V на контакте C. Мы отключили контакт B (средний). Хорошо, значит, ток течет через LED5, ток не течет через LED6, потому что он смещен в обратном направлении (как и LED2 и LED4)…. Но есть также путь для прохождения тока от контакта A, через LED1 и LED3 там нет? Почему эти светодиоды тоже не светятся? Вот суть схемы Чарлиплекса. Действительно, через LED1 и LED3 протекает ток, однако напряжение на обоих из них, вместе взятых, будет равно только напряжению на LED5. Обычно они имеют половину напряжения на них, чем у LED5. Таким образом, если у нас есть 1,9 В на LED5, то только 0.95 В будет на LED1 и 0.95 В на LED3. Из кривой If / Vf, упомянутой в начале этой статьи, мы можем видеть, что ток при этой половине напряжения намного ниже 20 мА … и эти светодиоды не будут светиться заметно. Это называется текущим воровством. Таким образом, большая часть тока будет проходить через светодиод, который нам нужен, наиболее прямой путь через наименьшее количество светодиодов (то есть один светодиод), а не через любую последовательную комбинацию светодиодов. Если вы посмотрите на текущий поток для любой комбинации подачи 5 В и 0 В на любые два вывода матрицы Charlieplex, вы увидите то же самое. Только один светодиод будет гореть одновременно. В качестве упражнения посмотрите на первую ситуацию. 5 В на контакте A и 0 В на контакте B отключите контакт C. Светодиод 1 - это кратчайший путь для прохождения тока, и светодиод 1 будет гореть. Небольшой ток также пройдет через LED5, а затем снова подключит LED4 к контакту B….. но опять же, эти два последовательно соединенных светодиода не смогут отводить достаточный ток по сравнению со светодиодом 1, чтобы светиться ярко. Таким образом реализуется сила чарлиплекса. См. Вторую схему моих часов Microdot…. 30 светодиодов, всего с 6 контактами. Мои часы Minidot 2 - это, по сути, расширенная версия Microdot… те же 30 светодиодов, расположенных в виде массива. Чтобы создать узор в массиве, каждый светодиод, который должен загореться, ненадолго включается, затем микроконтроллер переходит к следующему. Если планируется его подсветка, он снова включается на короткое время. При достаточно быстром сканировании светодиодов принцип, называемый «постоянство зрения», позволяет массиву светодиодов отображать статический узор. В статье Minidot 2 есть небольшое объяснение этого принципа. Но подождите … Я, кажется, немного упустил из виду в приведенном выше описании. Что это за «отключение контакта B», «отключение контакта C». Следующий раздел, пожалуйста.

Шаг 5: три состояния (не трициклы)

Три состояния (не трициклы)
Три состояния (не трициклы)
Три состояния (не трициклы)
Три состояния (не трициклы)

На предыдущем шаге мы упоминали, что микроконтроллер может быть запрограммирован на вывод напряжения 5 В или 0 В. Чтобы матрица Charlieplex работала, мы выбираем два контакта в матрице и отсоединяем все остальные контакты.

Конечно, вручную отсоединить контакты немного сложно, особенно если мы сканируем объекты очень быстро, чтобы использовать эффект стойкости зрения, чтобы показать узор. Однако выходные контакты микроконтроллера также могут быть запрограммированы как входные. Когда микроконтакт запрограммирован как вход, он переходит в так называемое «высокоимпедансное» или «трехступенчатое» состояние. То есть он имеет очень высокое сопротивление (порядка мегаом или миллионов Ом) на выводе. Если есть очень высокое сопротивление (см. Диаграмму), то мы можем рассматривать штырь как отключенный, и поэтому схема шарлиплекса работает. На второй диаграмме показаны выводы матрицы для каждой комбинации, которая может освещать каждый из 6 светодиодов в нашем примере. Обычно тройное состояние обозначается буквой «X», 5В отображается как «1» (для логической 1), а 0В - как «0». В микропрограммном обеспечении для «0» или «1» вы запрограммируете контакты как выход, и это состояние четко определено. Для трех состояний вы программируете его как вход, и поскольку это вход, мы на самом деле не знаем, каким может быть состояние … отсюда «X» для неизвестного. Хотя мы можем назначить контакт для трех состояний или входа, нам не нужно его читать. Мы просто пользуемся тем фактом, что входной вывод микроконтроллера имеет высокий уровень сопротивления.

Шаг 6: некоторые практические вопросы

Магия чарлиплексирования основана на том факте, что индивидуальное напряжение, представленное на нескольких последовательно соединенных светодиодах, всегда будет меньше, чем напряжение на одном светодиодах, когда одиночный светодиод работает параллельно с последовательной комбинацией. Если напряжение меньше, то и ток будет меньше, и, надеюсь, ток в последовательной комбинации будет настолько низким, что светодиод не будет гореть. Однако это не всегда так. Допустим, у вас было два красных светодиода с типичным прямое напряжение 1,9 В в вашей матрице и синий светодиод с прямым напряжением 3,5 В (скажем, LED1 = красный, LED3 = красный, LED5 = синий в нашем примере с 6 светодиодами). Если вы зажжете синий светодиод, у вас будет 3,5 / 2 = 1,75 В для каждого из красных светодиодов. Это может быть очень близко к тусклой рабочей области светодиода. Вы можете обнаружить, что красные светодиоды будут тускло светиться, когда синий светится. Поэтому рекомендуется убедиться, что прямое напряжение любых светодиодов разного цвета в вашей матрице примерно одинаково при рабочем токе, или используйте тот же цвет. Светодиоды в матрице. В моих проектах Microdot / Minidot мне не приходилось об этом беспокоиться, я использовал высокоэффективные синие / зеленые светодиоды SMD, которые, к счастью, имеют такое же прямое напряжение, как и красные / желтые. Однако, если бы я реализовал то же самое с 5-миллиметровыми светодиодами, результат был бы более проблематичным. В этом случае я бы применил сине-зеленую матрицу Charlieplex и красный / желтый matix по отдельности. Мне пришлось бы использовать больше контактов … Но вот и все. Еще одна проблема - посмотреть на текущее потребление от микроконтроллера и на то, насколько ярким вам нужен светодиод. Если у вас большая матрица и вы быстро ее сканируете, то каждый светодиод горит лишь на короткое время. По сравнению со статическим дисплеем он будет казаться относительно тусклым. Можно обмануть, увеличив ток через светодиод, уменьшив токоограничивающие резисторы, но только до определенного предела. Если вы слишком долго потребляете слишком большой ток от микроконтроллера, вы повредите выходные контакты. Если у вас есть медленно движущаяся матрица, скажем, индикатор состояния или циклонный дисплей, вы можете снизить ток до безопасного уровня, но при этом иметь яркий светодиодный дисплей, потому что каждый светодиод горит в течение более длительного времени, возможно, статично (в случае Некоторые преимущества Charlieplexing: - использует всего несколько выводов на микроконтроллере для управления множеством светодиодов - уменьшает количество компонентов, поскольку вам не нужно много микросхем драйверов / резисторов и т. д. Некоторые недостатки: - ваша микропрограмма должна будет обрабатывать настройку как состояние напряжения, так и состояние входа / выхода контактов - нужно быть осторожным с смешиванием разных цветов - разводка печатной платы затруднена, потому что светодиодная матрица более сложна.

Шаг 7: ссылки

В сети есть много ссылок на charlieplexing. В дополнение к ссылкам в начале статьи, некоторые из них: Исходная статья от Максима, в ней много говорится о вождении 7-сегментных дисплеев, что также возможно. https://www.maxim-ic.com/appnotes.cfm/appnote_number/1880A вики-запись

Рекомендуемые: