Оглавление:

Как управлять множеством светодиодов с нескольких выводов микроконтроллера: 6 шагов (с изображениями)
Как управлять множеством светодиодов с нескольких выводов микроконтроллера: 6 шагов (с изображениями)

Видео: Как управлять множеством светодиодов с нескольких выводов микроконтроллера: 6 шагов (с изображениями)

Видео: Как управлять множеством светодиодов с нескольких выводов микроконтроллера: 6 шагов (с изображениями)
Видео: Уроки Arduino #7 - подключение светодиода 2024, Ноябрь
Anonim
Как управлять множеством светодиодов с нескольких выводов микроконтроллера
Как управлять множеством светодиодов с нескольких выводов микроконтроллера

Используя тот факт, что многие контакты микроконтроллера имеют три состояния (+ V, GND или "высокий импеданс", вы можете управлять N * (N-1) светодиодами от N контактов. Таким образом, маленький 8-контактный микроконтроллер, такой как PIC12Fxxx или ATtiny11, может управлять 20 светодиодов на пяти доступных выходных контактах, и еще один контакт остается для какого-то входа.

Шаг 1:20 светодиодов на 5 контактах

20 светодиодов на 5 выводах
20 светодиодов на 5 выводах

Текущее количество микроконтроллеров с малым числом выводов (от 6 до 20 выводов на

весь пакет) имеют привлекательную цену и «симпатичны», но возникает вопрос, как можно наилучшим образом использовать эти контакты для общих приложений, таких как управление светодиодами. Подход с прямым подключением к управлению светодиодами требует по одному выводу на каждый светодиод. Традиционная схема мультиплексирования, в которой ряды анодов светодиодов приводятся в действие одним набором из N контактов, а общий катод каждой строки приводится в действие другим набором из M контактов, позволяет зажечь N * M светодиодов с помощью контактов N + M. Однако на процессоре с 5 или менее выходами (как в случае с большинством 8-контактных микроконтроллеров) это едва ли дает больше выходов, чем прямой привод.

Шаг 2: Charlieplexing

Чарлиплексинг
Чарлиплексинг

Предполагая, что выходные контакты действительно имеют три состояния (активный высокий, активный низкий и высокий импеданс (вход)), также можно совместно использовать драйверы строк и столбцов и управлять N * (N-1) светодиодами только с N контактов. Один вывод соединен с общими катодами ряда светодиодов и выведен на низкий уровень, а оставшиеся выводы N-1 подключены к анодам и либо выведены на высокий уровень, чтобы зажечь этот столбец, либо оставлены в качестве входов для отключения светодиода. Максим называет эту технику «Charlieplexing» и описывает ее в (1); Microchip также упоминает об этом в своем документе (2) (и реализует его также на плате PICKit 1.) (1) «Charlieplexing - мультиплексирование светодиодных дисплеев с уменьшенным количеством выводов» https://www.maxim-ic.com/appnotes. cfm / appnote_number / 1880 (2) «Советы и хитрости, 8-контактные микроконтроллеры FLASH PIC» https://ww1.microchip.com/downloads/en/DeviceDoc/40040b.pdf (3) Светодиоды Charlieplexing - теория. rgbphil

Шаг 3: Приступаем к работе

Запускаем его на работу
Запускаем его на работу
Запускаем его на работу
Запускаем его на работу

Это управляет 20 светодиодами от ATtiny11. Более ранняя версия этой платы была

собственно построено и выглядит как фотография главной страницы. Боюсь, что схема безнадежна; вам нужно, чтобы Eagle сообщал вам, какие сигналы и где подключены.

Шаг 4. Меньше и универсальнее…

Меньше и универсальнее…
Меньше и универсальнее…

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

для микросхемы Attiny ИЛИ микросхемы PIC12F. Сжимаем светодиоды до 3 мм и переходим к двухсторонней плате, и мы получаем что-то около 27x44 мм. Увы, эта плата еще не тестировалась …

Шаг 5: Itty Bitty

Малюсенький
Малюсенький

Microchip, конечно, имеет свои 6-контактные микросхемы PIC10F, способные управлять

всего 6 светодиодов от 3 выходных контактов. Это около 16 мм в диаметре. Переход на 603 светодиода позволит вам стать немного меньше, но я не уверен, в чем смысл.

Шаг 6: программное обеспечение

Программное обеспечение становится немного беспорядочным по ряду причин:

1) для показанных печатных плат светодиоды расположены таким образом, который удобен для компоновки печатной платы, а не в «правильном» порядке битов. ИМО, это способ делать что-то, но это означает, что строка 1 не обязательно означает бит 1, или столбец 3 не означает бит 3. Это требует уровня сопоставления между обычной адресацией строки / столбца и биты, требующие настройки. 2) Поскольку одни и те же биты используются для анодов и катодов, общее (строковое) соединение для некоторых битов может находиться в середине ведомых (столбцовых) битов. Это означает, что вам нужно сдвигать биты столбцов в зависимости от того, находятся ли они перед или после бита строки для этого набора столбцов. 3) Вы должны получить выходные слова как для ioport, так и для регистра направления порта. Прилагаемый код ASM для ATtiny11 является «подтверждением концепции». Это досадно неоптимизировано и плохо прокомментировано, но это все, что я написал до сих пор.

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