Страница 1 из 2
Управление LED матрицей
Добавлено: Пн янв 11, 2010 21:38:48
Arlleex
В моем случае 16 на 16. Сходил как то и купил 4 штуки 8 на 8 светодиодов. Так вот, есть идея, сделать небольшой экран из светодиодов. Решил для этих целей использовать простоые двоично-десятичные дешифраторы, а управление предоставить микрокнтроллеру. у которого есть 2 свободных 8 разрядных порта. Идея вот какая. 4 дешифратора управляют строками и столбцами. Вообщем, допустим, что один дешифратор должен дешифровать 1 тетраду, итого у нас используется всего 4 канал в порту. В коде 8421 подем на вход дешифратора 1 тетраду, а на второй дешифратор - вторую тетраду (оставшиеся каналы в порте). Получается, что нам надо дешифровать всего 16 чисел (т.к. у нас матрица 16 на 16).
Итак, Первый порт управляет у нас строками. Только взять дешифраторы надо с активными
низкими уровнями на выходах.
Далее, столбцы. Тоже самое, 4 канала управляют 8 столбцами, значит 8 каналов (это 1 целый порт) управляет всеми 16 столбцами. ТОлько тут надо применить дешифратор с активными
высокими уровнями на входе, т.к. нам надо зажигать светодиоды все таки.
Далее дело простое. Написать небольшую библиотеку для микроконтроллера. Библиотека включает в себя 2 секции.
1 секция - строки. Выписываем в библиотеку номера строк. Например - строка 7. На входе дешифратора должно быть число 0111. Первая тетрада именно для этого. Считаем до 8, это у нас 1000. Далее управление передается второй тетраде в порту. Например, строка 9 уже включается вторым дешифратором. и будет иметь примерно следующий код:
как видно, у нас порт разбит на 2 тетрады, вот и полчается, что 0b0001 - это уже второй дешифратор работает. А значит, активизируется 9 строка.
сейчас приведу пример библиотеки для строк:
- 0b00000001
0b00000010
0b00000011
0b00000100
0b00000101
0b00000110
0b00000111
0b00001000 - досчитали до 8
далее работает вторая тетрада и второй дешифрато.
0b00010000
0b00100000
0b00110000
и т.д.
Вот так вот. на соответствующих выводах дешифратора управления столбцами будут 1, а на дешифраторах управления строками - 0, что обеспечит разность потенциалов... короче пойдет ток и светодиод загорится.в
Вот схема, как я задумал.
Добавлено: Пн янв 11, 2010 21:52:03
Brigadir
Жень, а защелки где? Или у тебя только 4 светика гореть будут одновременно?
Добавлено: Пн янв 11, 2010 22:02:47
Arlleex
а зачем светодиоды?
картинка будет движущейся, часто меняться будет. Да и не нужны тут защелки потому, что мк может держать ногу в 1)))
Добавлено: Пн янв 11, 2010 22:06:53
Brigadir
У тебя на схеме дешифраторы - так? Так вот дешифратор на каждое число (на входе) "открывает" только один выход из 8(по твоей схеме). Итого у тебя "одновременно" будет гореть только 2 светодиода.
Добавлено: Пн янв 11, 2010 22:09:23
Arlleex
мля, точно, забыл)))
можно и регистры-защелки поставить на D триггерах...
Добавлено: Пн янв 11, 2010 22:24:35
Brigadir
Женя: есть умно сделаные регистры 1561ПР1(последовательный ввод данных 8 бит - вывод параллельный этих 8 бит на индикацию и защелкивание(запоминание). В это время вводиться следующая "порция" из 8 бит - сменила прежнюю информацию на табло(запомнилась) и т. д.). Тебе только остаеться написать программу в последовательном коде порциями по 8 бит и сигнал "строб" для смены информации пачками по 8 бит.Для данного дисплея понадобиться 4 микрухи(они 8 битные). Но для бегущей строки я бы выложил 4 дисплея в одну строку. В каком то журнале Радиохобби была готовая схема Бегущей строки(номер/год - не помню).
Добавлено: Вт янв 12, 2010 01:02:51
avreal
Brigadir писал(а):Женя: есть умно сделаные регистры 1561ПР1
+1
По-другому они называются CD4094, HEF4094 и т.п. Копеечаня и довольно удобная микросхема.
Можно ещё PWM на ножку OE бросить для регулировки яркости.
Добавлено: Вт янв 12, 2010 01:25:59
Avarges
Кстати есть где купить такие 8на8 матрицы СИНИЕГО свечения? Или они синие не бывают?
Добавлено: Вт янв 12, 2010 14:28:05
Arlleex
бывают.где купить незнаю.)))
я еще хочу закупить штук 20 сдивиговых последовательных регистров 74HС164))) и делать какую нить гирлянду.
Добавлено: Вт янв 12, 2010 16:07:48
VIRGO
Зачем так мудрёно выводить? Выводы столбцов всех четырёх матриц соединить и на 8 разрядов порта. Далее из 4-х дешифраторов составить дешифратор на 32 линии и подать на строки матриц.
Выводится байт на порт и пять разрядов на дешифратор. (итого 13 линий портов МК). Кроме того в таком формате проще составлять "картинки" для вывода.
Добавлено: Вт янв 12, 2010 16:19:49
Arlleex
а мочему бы не выводить по одной точке на частоте МК?
например, взять частоту, например, 1МГц, и уже ничего не заметьшь, что там мерцает...
выводить вот таким кодом:
ldi temp, 0b00000001
out portb, temp ; вывод на строчку
ldi temp, 0b00000010
out portd, temp ; вывод на столбец, зажигаеМ!!!
ldi... ; и так далее, без задержек)))
Добавлено: Вт янв 12, 2010 16:36:22
SeregaT
Stalker46 писал(а):а мочему бы не выводить по одной точке на частоте МК?
Тут походу либо яркость будет очень низкая, либо слишком большой импульсный ток через светодиоды.
Добавлено: Вт янв 12, 2010 17:42:33
VIRGO
Stalker46 писал(а):выводить вот таким кодом:
ldi temp, 0b00000001
out portb, temp ; вывод на строчку
ldi temp, 0b00000010
out portd, temp ; вывод на столбец, зажигаеМ!!!
ldi... ; и так далее, без задержек)))
И так 256 раз... Вместо того что бы то же самое сделать 32 раза.
И если ещё без задержек, то картинка будет "хвост" знает какая. (даже если перед зажиганием следующей точки обнулять порт, то всё равно будет включен "0" дешифратора, начит надо использовать ещё одну линию МК для гашения).
Добавлено: Вт янв 12, 2010 19:19:22
Avarges
SeregaT писал(а):Stalker46 писал(а):а мочему бы не выводить по одной точке на частоте МК?
Тут походу либо яркость будет очень низкая, либо слишком большой импульсный ток через светодиоды.
Светодиоды на такой скорости не справятся, 1 МГц слишком много. Обычно делают 25-300 Гц на светодиоде сигнал динамической индикации, но реально светодиод способен максимум на 50 кГц.
Добавлено: Вт янв 12, 2010 19:40:42
SeregaT
Avarges писал(а):индикации, но реально светодиод способен максимум на 50 кГц.
Если управлять матрицей на частоте 1 мгц, то достаточно 20 светодиодов, чтобы каждый мигал не чаще чем 50000 раз в секунду (правда сам импульс будет очень короткий и скважность большая).
Добавлено: Вт янв 12, 2010 20:22:57
Brigadir
Если нужно: могу набросать примерную схемку табло "Бегущая строка", но в "железе"(на регистрах). Корпусов регистров будет много.
Добавлено: Ср янв 13, 2010 16:53:07
Brigadir
Сталкер загорелся и... погас. Эта тема его больше не интересует

Добавлено: Вс янв 17, 2010 14:14:37
Avarges
SeregaT писал(а):Avarges писал(а):индикации, но реально светодиод способен максимум на 50 кГц.
Если управлять матрицей на частоте 1 мгц, то достаточно 20 светодиодов, чтобы каждый мигал не чаще чем 50000 раз в секунду (правда сам импульс будет очень короткий и скважность большая).
В целях динамической индикации нет нужды всё равно такую частоту через светодиод пускать, вот если хочешь сделать через светодиод передачу какого-то сигнала, только тогда.
Добавлено: Вс янв 17, 2010 21:21:40
Arlleex
нет, не погас, я пытаюсь найти матрицу с объединенными катодами светодоидов, а каждый анод светодиода доступен под корпусом. Я придумал небольшую шнягу - урпавлять одним портом микроконтроллера КУЧУ матриц...
Добавлено: Пн янв 18, 2010 23:48:47
Arlleex
вот типа вот такого хочу))) только жаль встроенных нету, да и просто таких нету led матриц
