De lo que estás hablando es de un convertidor de voltaje a corriente. Puedes rodar tu propio usando un amplificador operacional y un MOSFET.
simular este circuito : esquema creado usando CircuitLab
Algunas notas a las que debe prestar atención:
1) R2 debe tener una capacidad nominal de al menos 3 vatios. Transporta tanta corriente como los LED, y a plena corriente está cayendo 5 voltios para que coincida con la tensión de control.
2) V1 debe ser aproximadamente de 8 a 10 voltios mayor que el voltaje del LED. Debe suministrar el voltaje del LED más 5 voltios para R2 más algunos voltios para el MOSFET.
3) V2 no puede ser de 3.3 o 5 voltios. No me importa si eso es conveniente porque ya lo estás proporcionando para el Arduino. Debe proporcionar una salida de al menos aproximadamente 9 voltios - 5 voltios para R2 y 4 voltios para la unidad de compuerta del FET (y quizás un poco más). Por lo tanto, 12 voltios es mínimo, y 15 es mejor.
4) Debido a que desea controlar la corriente hasta 0 amperios, no puede ejecutar el amplificador operacional como un solo suministro, o al menos no de manera confiable. V3 debe ser un voltaje negativo, y para el TL081 es un mínimo de -5 voltios. Obtener +/- 12 o +/- 15 es más fácil.
5) El MOSFET debe tener un disipador de calor.
Hay trucos que puedes jugar, como
simular este circuito
Aquí, las resistencias de entrada dividen 5 voltios hasta 455 mV, y una resistencia conveniente de 1 ohmio producirá 455 mv para 455 mA. Esto utiliza más resistencias, pero la resistencia sensorial se convierte en un valor muy conveniente, y la disipación de potencia disminuye a menos de 1/4 vatios. Esto también reduce el requisito de exceso de voltaje de V1.
En general, esto es simple y confiable, pero requiere más partes que un controlador LED dedicado.