Здравствуйте коты! Простите если пишу не туда. Стала предо мной недавно задача управлять матрицей 11*11 светодиодов. Решил подключать ее через сдвиговые регистры 74hc595. В моем случае получается 4 штуки, 2 так сказать на столбцы и 2 на ряды. Т.к. в программировании я пока профан. Вопрос: Мне их все 4 лучше подключить каскадом друг за другом, либо раделить попарно? т.е. две на отдельных пинах работают со столбцами и 2 на других пинах со строками? Прикрепляю свой проект в протеусе, правда пока без программы =( Писать буду учиться в codevisionavr
ИМХО достаточно 3х регистров, т.к. для управления матрицей 11х11 нужно 22 линии, а 3 регистра обеспечат уже 24. Но при этом будет немного сложнее реализовать алгоритм управления. Можно конечно использовать и вариант 2х2 регистра, тем более что так проще в случае чего расширить матрицу до 16х16. Использовать отдельные пины точно лишнее, тем более если железный SPI всего один... Все что не получилось запрограммировать, приходится припаивать, как и в этом случае. Решать вам.
_________________ Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Спасибо огромное за помощь! Решил остановиться на вариант все регистры каскадом 4штуки. Сейчас перерисую схемку в протеусе и начну пробовать писать. Подскажите , какую тактовую частоту лучше выбрать для микроконтроллера?
Вообще-то надо не с частоты МК начинать, а с частоты регенерации дисплея (ибо в любом случае - динамическая развертка). Можно конечно на матрице 8*8 и растровую заквасить (один элемент в каждый момент времени), но яркость изображения при отсутствии мерцаний... А тут 11*11 или 16*16... Наиболее приемлемо (по практике) при частоте обновления экрана порядка 62-85Гц использовать мультиплексирование 1сторка из 4х разбив всю площадь экрана на группы по 4 строки (для матрицы 16*16 это 4 анодных ключа и 8 регистров сегментов катодов).
Наиболее приемлемо (по практике) при частоте обновления экрана порядка 62-85Гц использовать мультиплексирование 1сторка из 4х разбив всю площадь экрана на группы по 4 строки (для матрицы 16*16 это 4 анодных ключа и 8 регистров сегментов катодов).
Вот тут не понял Сейчас у меня так ( архив ниже ) (4 регистра). А нужно получается 8 ? Матрицу врятле буду использовать больше чем 11*11.
При "программном изголяже" - строчные ключи также на регистры повешены - для матрицы 11*11 с разверткой 4*11 (четыре анодных ключа с картинкой из одновременно выводимых трех строк) хватит 5 регистров (и еще лишние ячейки останутся). Но предподготовка данных будет довольно "заморочной"
Только та схема делалась на массив 7-сегментных матриц - нужно каждый семисегментник представить строкой/колонкой матрицы соответствующего размера. Принцип такой организации многократно проверен, а вот версия на ПИКе только в теоретическом наброске, возможно где-то и ошибки закрались...
Вот что получилось сейчас. Т.к. еще пока котенок в программировании, то код брал из интернета с небольшими корректрировками под себя. Подскажите правильно ли я в своем случае реализовал подключение регистров и часов? ( В первую очередь меня конечно интересуют регистры) Но с часами тоже непонятно, когда в протеусе отключаешь часы от мк то по ножкам видно что чтение вроде бы происходит, по крайней мере хотя бы тактовый сигнал имеется, а при подключении часов программа не уходит со строчки
Код:
while (!(TWCR & (1<<TWINT)));//ожидание бита TWIN
Прикрепляю свои наработки, надеюсь на помощь. Заранее спасибо
Сейчас этот форум просматривают: Google [Bot] и гости: 31
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения