Собираюсь подключать LED матрицу 8х8. Схему представлял себе так: два регистра 595 на катоды, одна 595 на аноды и далее программно мигаем ими как хотим. С анодами все понятно, подаем нули или единицы. На катоды сажаем резисторы 220Ом и транзисторы на землю, которыми управляем регистрами 595. Все в целом понятно. Но вот нашел такую схему и озадачился: Как видим из картинки, катодные ножки соединяются через резисторы напрямую с ножками регистров. Как так, ведь они работают на выход а не на землю. Значит ли это, что нуль на ножке регистра это земля? А если единица, то она противотоком давит на единицу анодного регистра и LED тогда не зажигается? Действительно ли так работает эта схема? Не чреваты ли для микросхем и светодиоды матрицы встречные единицы и единицы в обратном направлении? Схема подкупает отсутствием транзисторов, но сомнения терзают.
Цифровая микросхема работает так: чтобы подать на выход "0" она замыкает его на (-) питания (землю) через выходной транзистор в нижнем плече, чтобы подать на выход "1" она замыкает его на (+) питания через выходной транзистор в верхнем плече. Сопротивление канала открытого транзистора - миллиомы.
Поэтому 1) Да, значит, иного и быть не может исходя из самого принципа функционирования цифровой схемы; 2) Каким еще противотоком? Ток течет между разными потенциалами, между одинаковыми ничего не течет; 3) Схема работать будет, но половина резисторов (анодная или катодная) не нужна; 4) Не существует обратных направлений; 5) Транзисторы внутри микросхем.
Спасибо за толковый и развернутый ответ! Многое встало на место. То есть при всех возможных четырех сочетаниях +-,-+,++ и -- LED зажжется только при +- в сторону от анода, при остальных светить не будет и вреда ему тоже не будет. На схеме с картинки резисторы стоят только катодные, на матрице 8 общих анодов и 16 катодов (по 8 на цвет). Тут все понятно как раз. )
У светодиодов довольно низкое максимально допустимое обратное напряжение, в отличие от обычных диодов, так что за полярностью включения нужно следить.
Да, но при динамическом выводе с трех регистров комбинации будут всевозможными. Вывод строки с одного регистра, выбор активного столбца с другого, обязательно будет обратная полярность возникать. Потому я и планировал изначально катодные ножки матрицы через транзисторы пускать, чтобы катод был либо в землю либо в никуда. А при такой схеме он либо в землю, либо в единицу, а что если на аноде при этом ноль?
Тогда вам вместо обычного 74HC595 нужен регистр с выходом по схеме открытого коллектора типа PIC6C595 (STPIC6C595, NPIC6C595 и т.п.)
Попробовал поискать, не нашел таких микросхем у нас. Все таки надо делать через транзисторы наверное, или пускать параллально каждому светодиоду обычный диод в обратном направлении, что замотает схему проводами. Написать программу для матрицы так, чтобы не было ситуации обратной полярности мне пока не представляется возможным. Допустим комбинация на строке задается одним регистром, а второй включает строки, то есть подает ноль на ту строку которая должна светиться, а на другие единицы, при этом там где у первого регистра еденицы а у второго ноль - обратная полярность. И наоборот. То есть, возвращаясь к первому вопросу: схема на картинке неправильна?
Светодиоды шунтируют встречно-параллельными диодами. Т.е. вам еще одна матрица понадобится. Лучше схема с открытыми коллекторами на катодах.
Тем, что не решают проблемы. Во-первых, вы не можете сказать, как разделится напряжение на двух запертых диодах, для этого нужно знать детальную ВАХ в этом диапазоне напряжений. Во-вторых, последовательный диод увеличит Vf в прямом направлении. У светодиодов допустимое обратное напряжение в районе 5V, так что с логикой можно не заморачиваться, ничего не выйдет из строя.