Реле Tianbo - ресурс 10 млн переключений

Два вывода микроконтроллера PIC управляют шестью светодиодами

Benabadji Noureddine

EDN

Как известно, существует немало способов решения задачи по управлению множеством светодиодов с минимальным использованием линий ввода/вывода микроконтроллера, начиная от аппаратных решений на регистрах сдвига и специализированных микросхемах расширителей портов [5], и заканчивая различными программными подходами мультиплексирования [6]. Одному из методов программного мультиплексирования линий ввода/вывода (Charlieplexing) посвящено несколько публикаций на сайте Радиолоцман [1-4], из которых вы сможете узнать все преимущества и недостатки последнего.

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

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

Два вывода микроконтроллера PIC управляют шестью светодиодами
Рисунок 1. Принципиальная схема подключения шести светодиодов к двум выводам микроконтроллера PIC10F200.

Основное ограничение в схеме: напряжение питания микроконтроллера должно быть в диапазоне 2.0 В – 3.0 В. Например, если включен светодиод LED2 (Таблица 1), светодиоды LED4 и LED6 также будут «засвечиваться» в случае, если напряжения питания будет намного выше уровня 3.0 В. В схеме могут использоваться любые маломощные биполярные транзисторы, но с целью сохраненения одинаковой яркости свечения всех светодиодов, рекомендуется применять транзисторы с низким напряжением насыщения коллектор-эммитер (Uкэ нас, VCE(sat)).

Особого описания схема не требует, а алгоритм управления светодиодами легко понять по Таблице 1. Учитывайте, что состояния (0,0) и (1,1) недопустимы.

Таблица 1. Cостояния выходов микроконтроллера для управления шестью светодиодами.

  Линии
ввода/вывода
Светодиоды
Состояние GP0 GP1 LED1 LED2 LED3 LED4 LED5 LED6
0 Z Z 0 0 0 0 0 0
1 1 0 1 0 0 0 0 0
2 0 1 0 1 0 0 0 0
3 1 Z 0 0 1 0 0 0
4 0 Z 0 0 0 1 0 0
5 Z 0 0 0 0 0 1 0
6 Z 1 0 0 0 0 0 1

Для проверки работоспособности схемы автор использовал самый маленький и простой микроконтроллер PIC10F200. Исходные коды на ассемблере для микроконтроллеров PIC10F200 и PIC10F322, доступные в секции загрузок, демонстрируют два режима работы светодиодов.

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

Загрузки

Исходные коды – скачать

Дополнитиельные материалы:

  1. Повышение эффективности использования цифровых линий ввода/вывода микроконтроллеров.
  2. Мультиплексирование «методом Чарли» (Charlieplexing) с высоким коэффициентом заполнения.
  3. Подключение семи RGB светодиодов к микроконтроллеру ATtiny13.
  4. Светодиодная матрица 11×10 на одном микроконтроллере.
  5. Единственная линия порта ввода-вывода микроконтроллера управляет шкальным индикатором.
  6. Подключение восьми семисегментных индикаторов к микроконтроллеру с использованием 8 линий ввода/вывода.

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: Two PIC pins drive six LEDs

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • ...почему состояния (0,0) и (1,1) недопустимы?... при состояние (0,0) очень хорошо светятся лампочки 4 и 5 ... а при состояние (1,1) очень хорошо светятся лампочки 3 и 6 .... а при состояние (Z,Z) очень хорошо нагружается поувер... неужели фирма "Микрочип" упала так низко, что у ней нету более ножастие паучки?... или ето милитар-продукшн ... диву даюсь! ... краем уха когда-то слихал что существуют ПИК-чики с 28-портами! ... разве меня обманивали?... мне самому для меня самого очень жаль и я до конца недели буду край-край-край! ...
  • Просто тут стояла задача использовать минимум по максимуму (мелкий клоп для гирлянды диодов).
  • А сдвиговые регистры уже не в моде ? По трём проводам хоть стопитсот светодиодов цепляй, которые можно зажигать в любой комбинации. А учитывая наличие в продаже расширителей портов с двухпроводным I2C интерфейсом, и даже с 1WIRE интерфейсом, где вообще по одному проводу можно. Если целью была миниатюризация, то например микроконтроллеры STM8 изготавливаются в корпусах TSSOP20, габариты 6,5 Х 6,5мм. А в корпусе UFQFPN микросхема имеет габариты 3 Х 3 мм (20 ножек), и стоит копейки. В данной схеме при попытке зажечь несколько светодиодов это всё будет мерцать и терять яркость из-за динамической индикации. Подход к решению вопроса конечно интересный, но в реальной жизни малополезный.
  • Автор статьи "слукавил" - ибо применены два внешних транзистора, а не "чистая схема" на двух выводах. Однако именно решение с внешними транзисторами имеет место для "взять на заметку" :)
  • ... В случае, если применить сдвиговый регистр, по двум выводам возможно управлять любым количеством светодиодов. Ограничивается все быстродействием и потребляемой мощностью, однако...