Controlando 10 LED de alta potencia con una Raspberry Pi

Estoy tratando de descubrir cómo controlar 10 Luxeon Rebel LED (700mA) desde 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 algunas preguntas pueden parecer obvias. Investigué un poco y antes de pedir todas las piezas me gustaría saber si cometí errores.

Planeo usar este controlador BuckPuck para controlar los LED. Pensé que podrí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 las resistencias R2, R4, R6, etc., utilicé la ganancia que se encuentra en la hoja de datos (30) y el valor del emisor base (0.6V/1.2V). El GPIO de la Raspberry PI siendo 3,3V es 3.3 - 0.7 = 2.6V y 23.3 mA = 111 Ω. ¿Es eso correcto o entendí algo mal?

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

Finalmente, me gustaría poder atenuar la luz usando PWM, parece factible con los pines CTRL y REF del 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).

esquemático

simular este circuito : esquema creado con CircuitLab

Gracias !

En su esquema, optó por el transistor NPN 2N2222, que no soportará la alta corriente. En tales casos, usaría un transistor de potencia como 2N2102 (Ic max = 1A) en un caso TO-39 o un BD139 (Ic max = 1.5A, incluso más seguro) en un caso TO-126. También tenga en cuenta que la ganancia que seleccionó es la ganancia mínima. La ganancia real está en algún lugar entre eso y el valor máximo. Es habitual tener 100 al menos con tales transistores. En este caso, simplemente reemplace la resistencia de 100 ohmios con una resistencia de 1K.
Gracias, tienes razón! Si uso un 2N2102, ¿cuál será el valor de la resistencia (R2, R4, R6)? 1k? Y con un BD139, ¿necesito uno?
Yo diría que no se preocupe (demasiado) por ese valor de resistencia, ya que no es el que [debería diseñarse para] determinar la corriente del LED. Déle un valor lo suficientemente alto para limitar la corriente de base y lo suficientemente bajo para tener el transistor en un estado ON sostenido. 1K debería estar bien. Siempre necesita una resistencia para limitar la corriente extraída de la salida digital (recuerde que la unión emisor-base se comporta como un diodo con polarización directa).

Respuestas (2)

El BuckPuck es un convertidor reductor ("buck"). Debe proporcionarle un voltaje de al menos 2,5 V por encima del voltaje directo de los LED. El LED tiene un Vf típico de 3,2 V, por lo que desea que su voltaje de entrada sea de al menos 5,7 V. Llámalo 6V o superior. El BuckPuck tomará un voltaje de entrada hasta 32 VCC, aunque la eficiencia cae 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 impulsar 700 mA a través del circuito. Por supuesto, este voltaje de salida no puede ser superior a 2,5 V menos que el voltaje de entrada.

Debido a esto, no necesita resistencias limitadoras en las rutas de los LED. Esto también significa que desea seleccionar sus FET (o transistores) para que tengan pequeñas resistencias cuando se encienden ( R d s o norte en las hojas de datos)

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

Una solución es encender uno de los LED justo antes de apagar otro. Los MOSFET tardan en encenderse y apagarse, 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 PWM, básicamente solo enciende y apaga el pin CTRL con bastante rapidez. La hoja de datos dice que debe mantener la frecuencia PWM por debajo de 10 kHz. Lo mantendría alrededor de 1kHz, o incluso más lento. Lo que estás 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 brinda los siguientes ejemplos, que no funcionarán para usted porque no tiene una lógica de 5V:

ingrese la descripción de la imagen aquí

Lea la página 4 de la hoja de datos con mucho cuidado. También tenga en cuenta que la tierra del microcontrolador (la tierra RPi) está vinculada al LED-.

Convenientemente, el pin REF proporciona 5V para su uso. Debe cambiar estos 5V al pin CTRL. Una opción es utilizar un pequeño optoaislador (optoacoplador), como el Sharp PC713V0YSZXF .

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

Buena suerte.

Gracias, entiendo más claramente el papel del BuckPuck y cómo funciona el PWM. Y para el valor de Rds−on, es solo para los FET, ¿verdad? No encuentro este valor en las hojas de datos de los transistores NPN. Todavía tengo problemas para encontrar los componentes correctos. Me alegra que indique que será un problema si todas las luces están apagadas al mismo tiempo. Como dijiste, me aseguraré de encender uno y apagar el anterior.
@ oks2024 Me alegro de que tenga sentido :) Sí, tienes razón en eso R d s o norte es solo para FET; lo siento, no mencioné eso. Un FET, cuando está encendido, parece una pequeña resistencia. En cambio, un BJT ("Transistor de unión bipolar") tiene una caída de voltaje específica. Para un NPN, esto se llama V C mi ( s a t ) Un FET es mucho mejor para aplicaciones de conmutación de energía.
Hice algunas investigaciones sobre MOSFET, pero aún no estoy seguro de entender completamente las hojas de datos. ¿Puedo usar un enlace FDN337N , por ejemplo?
@ oks2024 Sí, sería un FET excelente para sus propósitos. El V GRAMO S de 30 V garantizará que los FET no fallen incluso si apaga todos los LED a la vez. Lo bajo V GRAMO S O norte permitirá que su lógica de 3.3V active completamente los FET. Sin embargo, un problema es que este FET específico es realmente pequeño. Si no tiene mucha experiencia en soldadura, será difícil de usar. Un FET comparable en un paquete más grande sería uno como este , aunque puede haber otros preferibles. (Este no es barato...)

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

La hoja de datos no aclara si el LED es lo mismo que la tierra, y sospecho que no es lo mismo: habrá una pequeña resistencia de derivación allí para medir la corriente.

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

Editar: iba a sugerir un FET pero demasiadas opciones. Quiere algo con unidad de nivel lógico y manejo de corriente razonable. Probablemente en un paquete TO-251.

Gracias por tu respuesta. Perdón por la pregunta del principiante, pero ¿cuáles son las principales diferencias entre transistores y FET?
Los transistores bipolares son amplificadores de corriente: pasas una corriente a través del emisor base y obtienes aproximadamente 50-300 veces a través del colector-emisor. Los FET son más como una resistencia sensible al voltaje de puerta donde "encendido" es unas pocas decenas de miliohmios. De cualquier manera, necesita algo más grande que un 2n2222.