Arduino style detected. Конечно трназистор, конечно в линейном режиме. По-уму, должно бы от ШИМ чётко управляться. А по факту, да, от постоянного напряжения тоже. Но оно как бы не гарантированно получается. Вот поставят в другую партию биполярный вместо полевика или просто другой транзистор. И настраивай диапазон яркости заново. Ну или просто от температуры оно плыть будет.