Оглавление:
- Шаг 1:20 светодиодов на 5 контактах
- Шаг 2: Charlieplexing
- Шаг 3: Приступаем к работе
- Шаг 4. Меньше и универсальнее…
- Шаг 5: Itty Bitty
- Шаг 6: программное обеспечение
Видео: Как управлять множеством светодиодов с нескольких выводов микроконтроллера: 6 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:54
Используя тот факт, что многие контакты микроконтроллера имеют три состояния (+ 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 является «подтверждением концепции». Это досадно неоптимизировано и плохо прокомментировано, но это все, что я написал до сих пор.
Рекомендуемые:
Как построить светодиодный куб 8x8x8 и управлять им с помощью Arduino: 7 шагов (с изображениями)
Как построить светодиодный куб 8x8x8 и управлять им с помощью Arduino: редактирование в январе 2020 года: я оставляю это на тот случай, если кто-то захочет использовать его для генерации идей, но больше нет смысла строить куб на основе этих инструкций. Микросхемы драйверов светодиодов больше не производятся, и оба эскиза написаны в старой версии
Конфигурация предохранителей микроконтроллера AVR. Создание и загрузка во флэш-память микроконтроллера программы мигания светодиода: 5 шагов
Конфигурация предохранителей микроконтроллера AVR. Создание и загрузка во флэш-память микроконтроллера программы мигания светодиода. В этом случае мы создадим простую программу на языке C и запишем ее в память микроконтроллера. Мы напишем нашу собственную программу и скомпилируем шестнадцатеричный файл, используя Atmel Studio в качестве интегрированной платформы разработки. Настроим предохранитель би
Повторное использование выводов интерфейса SPI ATtiny84 / 85: 6 шагов
Повторное использование выводов интерфейса SPI ATtiny84 / 85: это руководство является продолжением «Внутрисхемной отладки ATtiny84 / 85 с последовательным выходом»; инструктируется и расширяет эту аппаратную и программную конфигурацию, чтобы решить проблему повторного использования программных контактов загрузки приложением
Автономный робот с множеством возможностей: 8 шагов (с изображениями)
Автономный робот с множеством возможностей: Привет друзья, в этой инструкции я собираюсь представить новую версию моей предыдущей инструкции, которая может выполнять следующие задачи: 1 - Он может автономно перемещаться с помощью драйвера двигателя Arduino UNO и L298N 2 - Он может выполнять уборка как пылесос 3- Это ок
Обучаемый робот с множеством функций: 8 шагов (с изображениями)
Обучаемый робот с множеством функций: Привет, друзья, в этом руководстве я собираюсь представить фантастического робота, который может выполнять следующие задачи: 1 - Он может двигаться, и управление его движениями осуществляется с помощью Bluetooth 2 - Он может выполнять уборку как пылесос3 - Он может воспроизводить песни Bluetoot