Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Используя тот факт, что многие контакты микроконтроллера имеют три состояния (+ V, GND или "высокий импеданс", вы можете управлять N * (N-1) светодиодами от N контактов. Таким образом, маленький 8-контактный микроконтроллер, такой как PIC12Fxxx или ATtiny11, может управлять 20 светодиодов на пяти доступных выходных контактах, и еще один контакт остается для какого-то входа.
Шаг 1: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 является «подтверждением концепции». Это досадно неоптимизировано и плохо прокомментировано, но это все, что я написал до сих пор.