Led matrix+74HC595

Пытался раскурить регистры тут 74HC595 и для того что бы хоть что то стоящие получилось прикрутил матрицу))
топик наверно в туже топку.

вот так как то получилось

на что то не так все таки тут получилось ))
трабл такой если бегает один пиксель матрицы то светит норм ярко,
если же как на видосе (динамическая индикация) то весьма тускло.
где касяк не могу разобраться может кто знает ну или сталкивался с таким…
вот схемка

вот тут исходники
о блин чуть не забыл добрую часть кода взял от сюда
всем спасибо)))
  • +1
  • 28 апреля 2012, 19:48
  • oss

Комментарии (40)

RSS свернуть / развернуть
Извините, что не в тему, а что за трек в видео? =)
0
  • avatar
  • 0xED
  • 28 апреля 2012, 20:15
трек точно не знаю название
но гуглил музыка спектрум.
как то так
0
Можно ссылочку на эту композицию? :)
0
У тебя развертка по столбцам? Судя по тому, что мощные ключи именно в них — да. Но токоограничительные резисторы-то должны стоять в сегментах, а не разрядах! Т.е. переставь резюки из коллекторов транзисторов в разрыв линий к 74HC595.
+1
  • avatar
  • Vga
  • 28 апреля 2012, 20:20
хм а разве нет разницы где ограничивать ток
оно даже если один пиксель на на столбец все равно тускло
подумал что сильно быстро он по ним пробегается менял задержку все равно не помогает
замедлял ну очень сильно только тогда начинало норм светить
ну не должно же быть такова у многих же работает )))
+1
Разница есть и большая) Попробуй переставить.
0
хмм плату переделывать придется )))
мля купил текстолит от него отваливаются пяточки при пайки хрень какая та ))
хорошо попробую переделать ))
0
переделал платку хмм разнице не видно чет все равно тускло как и было
нашел в коде (нет выхода из подпрограммы)(касяк блин) подумал что в этом дела исправил не чего не изменилось…
может еще есть какие варианты ))))
0
все разобрался ))) теперь норм светит )))
я чет тупанул и на массу навесил резюк на 510ом хмм
0
правильно советуют переставить резисторы, так как у тебя сейчас — ток каждого резистора делится между всеми зажженными сегментами, в результате чего должна быть разная яркость свечени при разном количестве включенных в конкретном столбике строк, поэтому экономить резюки смысла нет. можешь убедиться, если зажжешь в одном столбике одну точку, а в соседнем все — тогда разница будет видна очень хорошо.
А по поводу яркости — при динамической индикации так всегда, тут решение одно — добавляй ток. у тя переходы работают в импульсном режиме, поэтому им можно вкачать побольше.
0
суть в том что так у тебя, в зависимости он количества включенных сегментов, через резистор проходит ток сразу от нескольких диодов. соответственно падение напряжения на резисторе будет разным. отсюда и разная яркость.
0
Давно собираюсь собрать такую штуку из давно валяющейся матрицы. Можно вместо подключения ключей (которые на столбцах) прямо к портам контроллера (PORTA на схеме) поставить туда второй сдвиговый регистр и сэкономить выводы контроллера?

И ещё — на моей матрице выводы раскиданы как попало, на твоей тоже так?

P.S. Что будет отличаться в схемах с матрицах с общим анодом\катодом? В одном случае будет развертка по столбцам, в другом — по строкам (если ключи npn на землю ставить)?
0
К матрицам понятие ОК/ОА неприменимо.
0
Да, согласен, имел в виду два таких варианта подключения:


P.S. Так можно поставить второй регистр? :)
0
Поворачиваешь матрицу на 90 градусов и у нее меняется полярность.
У регистра есть минус — 20мА на ножку (а еще — не более 80мА (AFAIR) через питание, т.к. вообще говоря сегменты им тоже нельзя рулить). А на разряды надо токи побольше, скажем до 160мА при 20мА через сегмент.
0
Но если найдешь регистр помощнее — то можно, почему ж нет.
0
Ну у автора в схеме — стоят ключи, которые рулятся сразу с порта A. Так вот если вместо подключения баз транзисторов к ногам контроллера поставить туда ещё один сдвиговый регистр. Регистр в этом случае будет только ключами управлять — токи гораздо меньше 20мА будут. Верно?

Просто не могу понять, почему автор на строки поставил регистр, а на столбцы нет :)
0
Это можно.
0
а то что я к стобцам подключил транзисторы а не еще один сдвиговый это я просто для эксперимента так сказать. по идей я просто хотел понять как работает регистор а как то просто СИДами помигать не захотелось ))))
щас наиграюсь с этой платкой сделаю наверно на 2-4 матрицы и полностью на регистрах )))
0
Насколько я понимаю, транзисторы все равно будут нужны (только их базы будут подключены к регистру, а не к контроллеру напрямую), ток будет слишком большой по столбцам для одной ноги регистра.
0
да думаю они нужны как не крути )))
вот тут есть схемка интересная
0
опубликуешь потом пост с наработками ну если конечно захочешь))
а так было бы тоже интересно посмотреть на результаты может для себя что то новое найду )))
0
Для того, чтобы выложить, ещё железку собраться сделать надо :) Пока с этим проблемы :)
0
ну это же как говорится как только так сразу ))
как сделаешь обязательно почитаю…
0
Мотивируешь, блин :)
0
а то ))))
глядишь и я чего запилю к тому времени )))
0
А если матрица двухцветная (например такая), причём линии катодов светодиодов каждого цвета выведены отдельно, а линии анодов соединены вместе?)
0
Так это не матрица ОК, а СИДы в ней) К двухцветникам-то ОА/ОК применимо (кроме встречно-параллельных).
0
да на самой матрице они как попало стоят )))
это я просто на схеме нарисовал так ))))
0
У меня с динамической индикацией были и чисто программные грабли. Когда я светодиодную бегущую строку курил. Я там первый раз накосячил именно с самой разверткой что-то (уже не помню что, кажется лишняя пауза была в коде выдачи байтов в регистры), но в итоге получались лишние задержки. То есть светодиоды лишние микросекунды не горели, в итоге было тускло. Точнее уже не скажу — давно это было.
0
а можно ли одним глазком взглянуть в код ))))
ну если конечно это сейчас не трудно сделать…
0
А чего там глядеть — обычный ногодрыг на ардуино… Там же 3 строчки (ну сама функция выдачи байта в регистры). Я глянул сейчас, и, емнип, проблема была в том, что я неверно дергал ногу Enable (она же латч) у регистров.
У меня было сделано так:
— задисейблил латч (строка со старыми данными погасла)
— выдал в регистры (а их там было 12 в ряд) 12 байт — это 1 строка
— выбрал нужную строку (8 строк там)
— заенейблил латч (строка с новыми данными подсветилась)
Переделал вот на что:
— выдал в регистры 12 байт
— задисейблил латч (строка со старыми данными погасла)
— выбрал нужную строку
— заенейблил латч (строка с новыми данными подсветилась)
И все стало великолепно. То есть во время между disable и enable светики не горели, и вроде как не много надо времени, чтобы надрыгать 12 байт, но все же. Поэтому после переделки все стало гораздо ярче. И при этом продолжило работать, т.к. регистры одновременно могли и данные новые принимать, и старые залатченные с прошлого раза показывать.
0
Если вам интересно, как было реализовано железо в заводской этой бегущей строке, то вот мой пост тута: we.easyelectronics.ru/JustACat/svetodiodnaya-beguschaya-stroka-pomogite-razobratsya.html
Там в начале самом описано, что используется на самой строке (она как раз работала на таких вот светодиодных матрицах 8x8 как у вас, только желтых :)):
1) toshiba japan tb62706bng 5e9ka — 16BIT SHIFT REGISTER, LATCHES & CONSTANT CURRENT DRIVERS
2) 74hc138d 1шт. — 3-to-8 line decoder/demultiplexer; inverting
3) in74ac244 1шт. — Octal 3-State Noninverting Buffer/Line Driver/Line Receiver
То есть сразу все и ясно, имеем 12 матриц 8x8. На каждые две матрицы у нас идет одна tb62706bng — то есть сдвиговый регистр 16 битный. А так же для включения строк имеется 74hc138d — на нее подаем 3 бита, получаем с нее 8 бит, ну тут, думаю, ясно 2^3=8.
Ну и алгоритм простой: загнали в регистры 12 байт (это как раз 96 светодиодов), — это первая строка, подали на 74hc138d 0, и сделали на регистрах латч, все, видим наши 96 бит на первой строке. Затем выдали следующие 96 бит — вторую строку, на 74hc138d подали 1 (емнип), снова сделали латч — видим вторую строку. Ну и динамическая индикация, меняем быстро — видим сразу все 8 строчек…
Честно не помню, были ли там отдельно транзисторы на каждую строку после 74hc138d, ток-то не малый на 96 светиков получается… Возможно in74ac244 как раз справляется… Под рукой строки уже нет, если только смотрите там фото и видео в статейке моей, там что-то видно :)
0
А не проще использовать MAX7219?
0
  • avatar
  • x893
  • 30 апреля 2012, 10:43
А как у него с распространенностью и стоимостью? Обычно к буквам MAX прилагается нехилый ценник.
+1
160р. На эти деньги можно купить по одному 595 на каждый столбем и строку, и еще останется собственно на матрицу.
Кстати, в терре хрен купишь, если не москвич, а в той же промэлектронике 7219 просто нет.
0
В последнее время использую в вместо 74HC595 — DM11C или STP08C596. Ток от 5 до 120 mA устанавливается одним резистором. DM11C беру в NEON по 14р.
0
Это всё как-то уже обсуждали в другом топике)).
С распиновкой у них хм.) Вчерась разводил под них составную матрицу из девяти 8х8, надо ж их куда-то девать, валяются без дела.))
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.