Не удержался и сделал сосульку из 14 ргб диодов на 7 линиях. Получилось довольно забавно
Одна из линий получилась прерванной и пришлось добавлять проводом (на последнем фото видно)
Осталась программная часть, благо нашел готовую библиотеку для создания чарлиплексинга
Фотки:
СпойлерСветодиоды готовятся к пайке:
Половина готова:
Вся готова:
Получается так. 7 линий, 42 комбинации. Если на одном канале выставить минус, то можно сразу включить 2 светодиода, т.е. RGB +RGB. По хорошему надо делать управление через полумосты, чтобы сопротивление было только у плюсов светодиодов, а минусы проходили чисто в 0 питания. Ну либо придется совсем мизерные сопротивления ставить и нельзя будет включать схему на постоянное горение диодов, а только чарлиплексингом продолжать работать. У меня лежит пачка n-канальных мосфетов(в совсем мелком корпусе), по идее ими можно как раз все сделать. Но тогда надо 14 штук ставить (7 от питания и 7 к земле)
Получится практически как управление семисегментными индикаторами.
Ну и плюс то, что у меня будет 16МГц. Может что-то выйдет
Baxster писал(а):Ну либо придется совсем мизерные сопротивления ставить и нельзя будет включать схему на постоянное горение диодов, а только чарлиплексингом продолжать работать.
ИМХО лучше так и сделать, во-первых сильно много толку от 2х светодиодов не будет,а 2 режима работы (постоянно и чарлиплексинг) - это только усложнение программы, во-вторых все достоинство чарлиплексинга как раз в отсутствии дополнительных элементов, а тут транзисторы придется ставить.
Engineer_Keen писал(а):сильно много толку от 2х светодиодов не будет
я про то, что это будет работать как динамическая индикация, выводим в порт 6 различных бит (на разные аноды), а в 7й вывод как раз минусом (на катод)
меняя вывод мы получаем тот же чарлиплексинг, только в виде динамической индикации. позже может схему обрисую
Engineer_Keen писал(а):все достоинство чарлиплексинга как раз в отсутствии дополнительных элементов, а тут транзисторы придется ставить.
в транзисторах ничего криминального. основная проблема будет в том, что красный светится темнее, чем все остальные, и чтобы выровнять его с остальными, ему надо другой номинал резистора.. тт тоже косяк небольшой
Вот чего получилось на данном этапе: видео
Исходник приложил, но это простой копи-паст. Пока без алгоритмов каких-либо и оптимизации. Думаю, что потом распихаю все в один большой двумерный массив, чтобы переделать все на нормальные циклы.
В текущем состоянии размер HEX равен 3294 байт из 30720 возможных, так что еще можно писать и писать:)
Как и обещал переделал на нормальный массив. диод адресуется одним байтом (старший полубайт - номер порта с анодом, младший - катод) очередное видео
Частота обновления 75Гц, т.е. 75 раз за секунду происходит полное обновление всех светодиодов. За секунду происходит 3150 обновлений (75 * 14 * 3)
Диоды заметно потеряли в яркости (частота обновления не сильно влияет). Придется уменьшать номинал резисторов чуть ли не до 4-6Ом. Яркость уменьшается в 42 раза. Изначально было подключено через резисторы в 220Ом
Основная проблема в том, что цвета светят не равномерно, т.е. красный совсем тусклый, синий немного ярче а зеленый получается самый яркий и комбинировать их между собой не очень интересная задача.
ШИМ будет довольно сложно реализовать.. надо будет либо подключать совсем маленькие резисторы, либо обойтись вообще без них, но это не очень хорошо. 16 градаций ШИМ - это 42 * 16 = 672 обновлений в один цикл или 50400 обновлений в секунду при 75Гц. Можно частоту обновлений опустить до 50Гц, думаю, что особой разницы не почувствуется. Вопрос в том, как лучше реализовывать ШИМ? сначала обработать один диод, а потом уже переходить к следующему, или по всему массиву обрабатывать по одной градации яркости? По алгоритмам разницы особой не будет, а вот при реализации может возникнуть проблема, когда значение яркости определенного диода изменят и уже по сути будет небольшой конфликт, но это не особо заметно будет при такой частоте обновления.
На этот раз ко мне в руки попались тонкие 80см двухсторонние сосульки на SMD светодиодах, питание 12V.
Первая - 72 зеленых светодиода(36*2). Управляется LED драйвером TM1816. Эффект по всей видимости хранится в 8-ногом МК или ASIC(без маркировки). Несмотря на то, что драйвер имеет 16 каналов, задействовано по прежнему 12(по 3 СД последовательно).
Вторая - 108 белых(54*2). 16-канальный драйвер RT516SC. Целых 6 светодиодов на канал(всего 9 каналов - ужас!) и видно ступенчатость свечения. Но по плате прослеживается что расчитано на RGB светодиоды. Анод каждого цвета заведен на свой PNP транзистор S8550(SOT23) и управляется драйвером RT516.
В целом можно сказать, что эти сосульки лучше подходит для домашней переделки.
Пробую прошить контроллер прошивкой с этого поста: http://radiokot.ru/forum/viewtopic.php? ... 3#p1841213
При программировании появляется такое окно:
Программатор USBasp.
Фьюзы программируются.
В итоге сосулька не работает.
Кто подскажет, что делать?
P.S. вроде прошил (пока не запаяны резисторы)
Прошил с помощью Khazama AVR Programmer
Для eXtreme Burner — AVR задача оказалась не по зубам.
На ЕЕ есть вариант с транзисторами, но это насколько я понял если надо несколько диодов одновременно зажечь. А вообще можно просто использовать комплиментарные пары транзисторов на любой нужный ток.
Добрый день. Ребята, а кто может написать прошивку для Attiny13 индикатора уровня на 20-ти светодиодах? У автора в прошивке есть такая функция, но нужно выбирать режим кнопочкой и только на 12 светодиодиков. Зарание спасибо за помощь
При отсутствии опыта есть шанс сделать ошибку, и например, прошить фьюзы до заливки программы или отключить внутренний генератор... Ну если все делать точно по инструкции, можно и обойтись.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)