Вы обязательно должны пойти на разделение между HW, которым вы пытаетесь манипулировать, и логикой, которая будет его контролировать.
Я не знаю, что вы пытаетесь сделать с 50 светодиодами, но я думаю, это какое-то световое шоу.
Вы определенно должны прочитать книгу на эту тему, но вот краткое изложение того, что вам, вероятно, лучше всего делать.
Я бы пошел с Visual Studio 2010 Express Edition (это бесплатно).
Я вижу два разных пути, в зависимости от того, сколько времени вы готовы инвестировать. И в зависимости от того, как долго вы планируете хранить / поддерживать модуль. И если есть только одно конкретное одноразовое использование, или если вы хотите иметь работающий двигатель общего назначения.
Альтернатива А - просто взломать. Создайте проект, добавьте ссылку на dll и используйте проводник объектов / intellisense / отражатель, чтобы увидеть, можете ли вы создать что-то, что манипулирует HW.
Альтернатива B - это больше работы, но это единственная реальная возможность, если вы планируете использовать ее в течение некоторого времени.
Сначала создайте интерфейс, представляющий огни.
public interface MyLights
{
void SetRedLed(bool);
bool SetGreenLed(bool);
etc
}
Тогда у вас должно быть две реализации этого интерфейса. Тот, который показывает результат в реальном времени на экране (вывод текста, wpf или winform). Другая реализация должна использовать dll, о котором вы говорите, и манипулировать реальными светодиодами.
Затем вы должны начать создавать движок, который управляет интерфейсом. Вероятно, у вас также должен быть интерфейс Timer, чтобы вы могли использовать TDD для ваших анимаций / последовательностей. Этот модуль, вероятно, должен читать из ini-файла или какого-либо DSL.