Controlando 10 LED de alta potencia con una Raspberry Pi

2

Estoy tratando de averiguar cómo controlar 10 Luxeon Rebel LED LED (700mA) de una Raspberry Pi. Quiero poder encenderlos y apagarlos desde el código, pero no necesito tener dos o más LED encendidos a la vez, siempre un LED a la vez.

En primer lugar, no sé mucho sobre electrónica, por eso es que algunas preguntas pueden parecer obvias. Investigué un poco y antes de ordenar todas las partes, me gustaría saber si cometí errores.

Planeo usar este Driver BuckPuck para controlar los LED. Pensé que podía poner los LED en paralelo, y usar un transistor 2N2222 como interruptor. ¿Es esa la mejor manera de ir?

Para encontrar el valor de los resistores R2, R4, R6, etc., utilicé la ganancia encontrada en la hoja de datos (30) y el valor del emisor base (0.6V / 1.2V). El GPIO de la Raspberry PI es 3,3V, es 3.3 - 0.7 = 2.6V y 23.3 mA = 111 Ω. ¿Es correcto o entiendo mal algo?

¿Necesito una resistencia entre el LED y el transistor, y si la necesito, ¿cómo puedo encontrar el valor?

Finalmente, me gustaría poder atenuar la luz usando PWM, parece ser posible con los pines CTRL y REF de BuckPuck, pero realmente no entiendo cómo funciona.

Aquí hay un esquema que muestra solo tres LED (con 10 LED la imagen era demasiado pequeña).

simular este circuito : esquema creado usando CircuitLab

¡Gracias!

    
pregunta oks2024

2 respuestas

1

El BuckPuck es un convertidor reductor ("buck"). Debe proporcionarle una tensión de al menos 2,5 V por encima de la tensión directa de los LED. El LED tiene un Vf típico de 3.2V, por lo que desea que su voltaje de entrada sea al menos 5.7V. Llámalo 6V o más alto. El BuckPuck tomará un voltaje de entrada hasta 32VDC, aunque la eficiencia desciende un poco.

Está regulado para proporcionar corriente constante. En otras palabras, el BuckPuck variará su voltaje de salida para que la corriente permanezca igual. Al buckpuck no le importa si tiene uno o tres LED en serie, simplemente creará el voltaje necesario para empujar 700mA a través del circuito. Por supuesto, este voltaje de salida no puede ser mayor que 2.5V menor que el voltaje de entrada.

Debido a esto, no necesita ninguna resistencia limitadora en las rutas de los LED. Esto también significa que desea seleccionar sus FET (o transistores) para tener pequeñas resistencias cuando se enciende (\ $ R_ {ds-on} \ $ en las hojas de datos)

Sin embargo, esto presenta un problema en el diseño de rutas múltiples. Si apaga uno de los LED antes de encender otro, entonces no hay ningún lugar al que pueda ir la corriente. El voltaje de salida se disparará hasta el máximo posible, ya que el BuckPuck intenta seguir presionando 700mA.

Una solución es encender uno de los LED justo antes de apagar otro. Los MOSFET requieren tiempo para activarse y desactivarse, por lo que es posible que deba agregar un retraso en su código para asegurarse de que siempre haya una ruta actual disponible.

En cuanto a la atenuación de PWM, básicamente, simplemente activa y desactiva el pin CTRL con bastante rapidez. La hoja de datos dice que necesita mantener la frecuencia PWM por debajo de 10kHz. Lo mantendría a alrededor de 1kHz, o incluso más lento. Lo que está haciendo es encender y apagar el LED más rápido de lo que el ojo puede detectar. Lo que terminas viendo es el brillo promedio.

Sin embargo, solo puede hacer esto directamente si tiene salidas lógicas de 5V. El RPi tiene salidas de 3.3V. La hoja de datos proporciona los siguientes ejemplos, que no funcionarán para usted porque no tiene lógica de 5 V:

Lealapágina4delahojadedatosconmuchocuidado.Tambiéntengaencuentaquelaconexiónatierradelmicrocontrolador(laconexiónatierraRPi)estáconectadaaunLED.

Convenientemente,elpinREFproporciona5Vparasuuso.Necesitacambiareste5VenelpinCTRL.Unaopciónesusarunoptoaisladorpequeño(optoacoplador),comoelSharp PC713V0YSZXF .

Si no sabes cómo usar un optoaislador, buscaría respuestas aquí :)

Buena suerte.

    
respondido por el bitsmack
0

El controlador que tiene es un controlador de corriente constante, y al revisar su hoja de datos debería funcionar bien para controlar los LED individuales, siempre que cumpla con el requisito de que el voltaje de entrada sea 2.5V más alto que el voltaje directo nominal de los LED. No necesita una resistencia en serie con los LED en este caso.

La hoja de datos no deja claro si LED es lo mismo que tierra, y sospecho que no es exactamente lo mismo: habrá una pequeña resistencia de derivación que mide la corriente.

Los transistores bipolares no son ideales para este alto nivel de corriente, elegiría FET para esto. Posiblemente con un 3.3V - > El búfer de alta potencia de 5 V del GPIO actúa como un controlador FET.

Editar: iba a sugerir un FET pero demasiada opción. Desea algo con unidad de nivel lógico y manejo de corriente razonable. Probablemente en un paquete TO-251.

    
respondido por el pjc50

Lea otras preguntas en las etiquetas