Муфты электромонтажные от производителя Fucon

Одна линия ввода/вывода микроконтроллера для управления 16 светодиодами

Zoran Mijanovic и Nedjeljko Lekic, Montenegro

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

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

В статье мы рассмотрим, как при помощи всего лишь одной линии ввода/вывода управлять 16 светодиодами.

Для решения нашей задачи потребуются две микросхемы сдвигового регистра 74HC164 и микроконтроллер ATtiny13 производства Atmel.

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

На Рисунке 1 показана схема подключения светодиодов и микросхем к микроконтроллеру.

 Рисунок 1.
Подключение и управление 16 светодиодами с
использованием двух регистров сдвига

Микроконтроллер управляет регистрами сдвига по входу тактирования CLK. Этот же сигнал поступает через RC фильтр на входы данных A и B регистра сдвига. Интегрирующую цепочку (RC фильтр) образует резистор R номиналом 100 кОм и емкость входов A и B регистра сдвига (Рисунок 2). Как известно, напряжение на конденсаторе RC цепочки не может измениться мгновенно. Время заряда и разряда зависит от емкости конденсатора и сопротивления резистора. Оценить его можно по постоянной времени T= R×C×ln2 и в нашем случае она будет равна приблизительно R×C×ln2=100 кОм×(5 пФ+5 пФ)×0.7=0.7 мкс.

 RC цепочка с постоянной времени 0.7 мкс
 Рисунок 2.
RC фильтр (интегрирующая цепочка), образованный резистором R и емкостью входов A и B регистра сдвига

Для записи лог. 0 в регистр сдвига микроконтроллер должен удерживать на линии ввода/вывода низкий уровень приблизительно 2 мкс, что намного больше постоянной времени. И затем передать стробирующий импульс, который должен быть по длительности меньше постоянной времени, чтобы не пройти через RC фильтр. Для записи логической 1 в регистр сдвига микроконтроллер должен удерживать высокий уровень дольше, чем постоянная времени. Затем микроконтроллер опять формирует стробирующий импульс длительностью около 0.25 мкс (два машинных цикла), который меньше постоянной времени и не меняет логическое состояние на входе данных.

На Рисунке 3 показана осциллограмма, где отображен тактовый сигнал (желтый) и сигнал на входе данных сдвигового регистра после RC фильтра (голубой).

 Рисунок 3.
Осциллограмма сигналов при записи в регистры сдвига двоичного значения 1111111111000000.  Верхняя осциллограмма - тактовый сигнал, нижняя - сигнал данных

Нарастающий фронт тактового сигнала (переход от низкого логического уровня к высокому) загружает данные в регистр сдвига. Кроме того, на Рисунке 3 видно, что минимальный уровень сигнала логического 0 и логической 1 на входе данных является 1.3 В и 3.1 В, соответственно. Напряжение логического порога входа регистра сдвига – 2.5 В.

Данная схема обеспечивает запись 16 бит данных в сдвиговый регистр примерно за 35 мкс. Пользователи могут посмотреть демонстрационное видео, на котором видно последовательное включение светодиодов с периодом 500 мс.

Загрузки

Листинг исходного кода (Си) - скачать

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

На английском языке: Drive 16 LEDs with one I/O line

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя