Как и обещал переделал на нормальный массив. диод адресуется одним байтом (старший полубайт - номер порта с анодом, младший - катод)
очередное видеоЧастота обновления 75Гц, т.е. 75 раз за секунду происходит полное обновление всех светодиодов. За секунду происходит 3150 обновлений (75 * 14 * 3)
Диоды заметно потеряли в яркости (частота обновления не сильно влияет). Придется уменьшать номинал резисторов чуть ли не до 4-6Ом. Яркость уменьшается в 42 раза. Изначально было подключено через резисторы в 220Ом
Основная проблема в том, что цвета светят не равномерно, т.е. красный совсем тусклый, синий немного ярче а зеленый получается самый яркий и комбинировать их между собой не очень интересная задача.
ШИМ будет довольно сложно реализовать.. надо будет либо подключать совсем маленькие резисторы, либо обойтись вообще без них, но это не очень хорошо. 16 градаций ШИМ - это 42 * 16 = 672 обновлений в один цикл или 50400 обновлений в секунду при 75Гц. Можно частоту обновлений опустить до 50Гц, думаю, что особой разницы не почувствуется. Вопрос в том, как лучше реализовывать ШИМ? сначала обработать один диод, а потом уже переходить к следующему, или по всему массиву обрабатывать по одной градации яркости? По алгоритмам разницы особой не будет, а вот при реализации может возникнуть проблема, когда значение яркости определенного диода изменят и уже по сути будет небольшой конфликт, но это не особо заметно будет при такой частоте обновления.