Хотя подобных поделок в интернете "просто завались" я не удержался от искушения добавить свои "125 - копеек".
Самым распространенным способом подключения большого количества светодиодов - матричный. Этот метод использует одно из свойств светодиода, как нелинейного элемента - он начинает светится при подаче на него питания только одной полярности.
Такой метод мы уже использовали в проекте елочной гирлянды. Существует еще один способ, использующий Z-состояние выходного буфера, и еще одно свойство светодиода,
как нелинейного элемента. Дело в том что диод начинает светится не только от подачи питания правильной полярности, но и определенной величины, превышающей какое-то значение (назовем его пороговым - Up).
Принцип работы попробую объяснить на фрагменте схемы:

Если мы хотим зажечь какой-то светодиодик, то на линию, подключенную к его аноду нужно подать высокий уровень (1), на линию подключенную к катоду низкий уровень а все остальные линии перевести в Z-состояние. В этом случае все светодиоды, кроме того, который мы хотим зажечь, получаются подключенными по два последовательно , и не будут светится, если напряжение питания нашего буфера не превышает 2*Up.
Преимущество этого метода - возможность подключения большого количества светодиодов.
При наличии N выходов их можно подключить до N*(N-1).
Но есть и пара существенных недостатков:
- ограничена максимальная яркость свечения, из-за ограничения максимального напряжения питания (2*Up);
- сложная топология схемы.
Но мы не боимся трудностей. Для изготовления сего девайса, кроме платы Марсоход, нам понадобились:
- 125 светодиодов. Мы взяли SMD 0603, большего размерчика в магазине не оказалось;
- монтажная плата;
- UTP кабель двух типов: одножильный и многожильный;
- разъемы.
Поскольку для подключения 125 светодиодов нужно 12 выходов, платку марсохода нужно немного доработать - разделить моторные пины и допаять штырёчки.
Для облегчения монтажа и тестирования, вся схема разбита на 5 частей:

Каждая часть сделана в виде отдельного модуля на разъемчиках:

Светодиоды напаяны на кусочки лужёной медной проволоки длинной 5см и
соеденены перемычками:

Собранный полностью модуль можно установить на платку и проверить:

Для подключения пяти таких модулей нужна "материнская" платка, которая дублирует моторные пины пять раз:

И вот еще:

Теперь на платку можно установить все пять модулей:

Для управления нашим устройством, будем подключать его к COM-порту компьютера. Поскольку данные нужно передавать только в одну сторону, можно использовать только один сигнал, Tx. Подаем его на пин DN. Для того чтобы защитить вход от
высокого напряжения на Tx, между пином DN и +5USB нужно установить джампер:

После того, как все собрано вместе, подключено к компьютеру и зашит проект (
), можно приступать к программированию всяких световых эффектов.Чтобы включить или выключить какие-либо светодиоды, из компьютера в COM-порт нужно передать файл из 16 байт (128 бит), каждый бит в котором описывает состояние одного светодиода. Для создания таких файлов написана простенькая программка Out_com1.exe (она так же лежит в архиве вместе с проектом). С ее помощью мы сделали простенькое
тестовое шоу:
До восьмого марта есть еще время, и , я думаю, мы успеем придумать какие-нибудь более интересные эффекты. 

en.wikipedia.org/.../...
Нехорошо вводить людей в заблуждение, когда есть полностью разжёванные материалы в сети. А метод плох из-за паразитного свечения в случайный СИДах. Лучше по-старинке через регистры или мультиплексоры.
Там на самом деле по два диодика встречно, как на
фрагменте , не стал дорисовывать и так схема большая и громоздкая получилась.
Что они обозначают?
Питание от двух разных блоков не желательно,
могут быть проблемы другого рода - уравнивающие токи,
помехи и т.д. Лучше всего питать от одного блока, или
от батарейки.
Компенсирует часть тока от батарейки (около 8 ма)
Вроде немного понятнее стало... То есть, тот диод, который на землю, уже в самой MAX II, а тот, что на питание - на самой плате(между пином +5USB и линией VCC)...
Получается, что когда на входе DN +12 - излишек утекает через диод на плате на плюс питания, а когда -12 - то на входе внутри MAX II 0 ?
А этот излишек, который на плюс питания уходит, он потом куда ?
Для защиты входа от перенапряжения обычно ставят два диода,
один на землю, другой на питание. Тот что на землю у нас как-бы
есть (он есть в выходном буферном элементе), а на питание нужно
ставить обязательно. Кроме того т.к. -12в порта соответствуют
логической 1, то в проекте, на входе ресивера, нужен инвертор.
Ну а "в общем", если внимательно прочитать документацию на
современные преобразователи уровней, например MAX232 или
тот-же HIN202, они имеют параметры "input threshold voltage - 1.7V",
и "Input hysteresis voltage - 0.5V" т.е. фактически совместимы с
обыной 5, или даже 3-вольтовой логикой.
Указанный способ подключения к COM порту не требует преобразователя уровня ? То есть, можно тупо подключить Tx ком-порта к DN и поставить перемычку и можно будет слать байтики в плату ?