AquaGomel, Вы не много перегибайте, все мы делаем и пишем контроллеры в первую очередь для себя!!! И делаем всё так как удобно и выгодно именно для своей конфигурации. Те кто делают из этого бизнес, те заботятся об универсальности и т.д..
Но не мы, да и это не нужно, если мне нужен один канал для лент светодиодов, то я буду делать только один, и мне без разницы что у кого то 4 канала + ночная подсветка, или дозаторы удо - это не моя головная боль...
Поэтому самые простые контроллеры типа как у
Сергій М просты и подходят большинству, но как только начинают появляться дополнительные фишки универсальность сразу падает.
Живой пример это подключение нескольких датчиков температуры, да шина 1-Wire позволяет подключить около 100 таких датчиков на один выход, но обращение к ним происходят по адресам, для себя я могу себе такое позволить, я в любой момент заменю сгоревший датчик и пропишу его новый адрес в код, когда 4 датчика это экономия 3 выходов. Но для публики которая не понимает в программировании нужно отдельно втыкать каждый датчик в отдельный выход.
Но суть вашего сообщения поддерживаю, каждый блок нужно дописывать до конца и ума, просчитывая все варианты развития событий, так что бы ни когда к нему не возвращаться.
P.S.: Всё не терпится посмотреть ваш код Ардуинки

Может есть какие интересные подходы у Вас ...