Usando un microcontrolador para encender la tira de LED

Tengo 60 leds que vienen en una tira de led . Un metro de longitud de la tira de LED requiere lo siguiente:

  • 400 miliamperios
  • 12 voltios

Quiero controlar estos LED con un microcontrolador. Estoy pensando en usar un TIP120 y un raspberryPi.

Un pin GPIO de raspberryPi puede generar 50 miliamperios de forma continua. (Actualización: esto no es cierto, ver más abajo)


Soy un principiante y no estoy seguro de estar haciendo esto correctamente. Todos mis cálculos se basan en cosas que leo en este blog .


Matemáticas

Corriente básica:

El TIP120 tiene una corriente de colector de lc = 250 * lb, por lo que necesitaré una corriente base de 1,6 mA.

(1,6 mA * 250 = 400)

El raspberryPi no debería tener problemas con la base actual

Resistencia básica:

Necesitaré una resistencia lo suficientemente baja para garantizar que la base TIP120 permanezca saturada pero a menos de 50 mA para no sobrecargar la raspberryPi.

De acuerdo con el blog que mencioné, encuentro la resistencia base buscando el Vbe (sat). Ver figura 2.

donde Vbe(sat) es 400 en el eje x, la corriente del colector es aproximadamente 1,3 en el eje y.

ingrese la descripción de la imagen aquí

Si el raspberryPi emite 3,3 voltios, entonces hay una caída de voltaje de 2 voltios
(3,3 - 1,3)

Entonces, según mi cálculo, necesito una resistencia entre 4 y 40 ohmios R = V/I
2 / (0,05 A) = 40 ohmios
2 / (0,50 A) = 4 ohmios
(Actualización: incorrecta, consulte la parte inferior de la pregunta)

Todavía me considero un aficionado y estoy un poco por encima de mi cabeza.

  • ¿Estos cálculos parecen correctos?
  • ¿Funcionará TIP120? (cualquier otra sugerencia es bienvenida)
  • ¿Hay alguna otra consideración que deba tener en cuenta para mi esquema?

ingrese la descripción de la imagen aquí

Actualizar

Como se señaló en las respuestas, escribí las clasificaciones de miliamperios por un factor de 10. Debería haber dicho:
2 / (0,005 A) = 400 ohmios
2 / (0,050 A) = 40 ohmios

Actualización 2

Parece que hay cierta confusión sobre la corriente máxima que puede proporcionar un pin en una Raspberry Pi. Para estar seguro, voy a asumir que es de 8 mA.

https://raspberrypi.stackexchange.com/questions/9298/what-is-the-maximum-current-the-gpio-pins-can-output

https://raspberrypi.stackexchange.com/questions/1130/what-is-the-nominal-gpio-pin-output-current

Actualización 3

Ada fruit escribió un excelente artículo de blog sobre cómo controlar una tira de LED con un microcontrolador. Ella recomienda un STP16NF06 o un TIP120

https://learn.adafruit.com/rgb-led-strips/uso

No creo que los pines GPIO puedan generar 50 mA. Creo que el pin del riel de alimentación de +3.3V puede generar 50 mA. Creo que cada GPIO puede generar solo unos pocos miliamperios. Usaría un MOSFET de nivel lógico en lugar de un BJT. Entonces no hay necesidad de preocuparse por la corriente continua. IRLB8721 es una excelente opción para muchos usos; Creo que este uso calificaría.
@JonWatte Gracias por señalarlo, voy a verificar dos veces la corriente máxima antes de continuar.
Los cálculos de @JonWatte Power en el diseño del RPi calcularon todos los GPIO al mismo tiempo, 3 mA cada uno, 50 mA en total. Puede tener menos encendido en un momento dado y aumentar la corriente. Además de eso, calcularon 50 mA adicionales directamente desde el riel de 3.3v, cuando todos los periféricos están en uso (como hdmi, ethernet y tarjeta SD, todos los cuales se alimentan del riel de 3.3v). Entonces, los PINS de 3.3v, conectados directamente al riel de 3.3v, y el GPIO de 3.3v del BCM SOC son diferentes.
+1 para principiantes que hacen su propia investigación y llegan casi hasta el final antes de hacer una pregunta.
@Passerby Creo que quemará la etapa del controlador del pin GPIO si intenta obtener 50 mA de uno de ellos y mantiene el resto inactivo.
@JonWatte, el bmc2835 puede manejar más de lo que está configurado el pin, pero si lo hace, el voltaje cae. No hay una hoja de datos disponible (Broadcom es af*****) para estos calcetines, pero tienen gpio controlado por registro con corrientes de accionamiento variables. El "máximo" es 16 mA con solo una caída máxima de ~ 0.3 V de VCC. 50 mA lo harían caer bastante bajo, en esencia protegiendo al controlador. Por supuesto, no se recomienda extraer 50 mA de un solo gpio.

Respuestas (2)

Ya casi estás allí, sin embargo, un par de cosas:

El cálculo de la resistencia base no es correcto; recuerde que solo necesita 1,6 mA según sus cálculos (la corriente del colector está separada).
Mirando la hoja de datos, la ganancia mínima es 1000 y el voltaje máximo del emisor base es 2.5V, lo que significa que debemos ajustar los cálculos, 1.6mA servirá para la corriente base (siempre es bueno tener extra para un interruptor como la ganancia cae en la saturación) pero necesitamos usar 2.5V en lugar de 1.3V para el peor de los casos (es mejor usar el peor de los casos/valores máximos para diseñar, aunque mirando el gráfico parece que el Vbe adicional es poco probable en esta corriente, así que en algún lugar entre las dos cifras a continuación debería estar bien):

Asi que:

(3,3 V - 2,5 V) / 1,4 mA = 570 Ω

o

(3,3 V - 1,5 V) / 1,4 mA = ~1,2 kΩ

Esto debería funcionar bien, pero no es la forma más eficiente de hacer las cosas: la disipación del transistor será de al menos 0,4 A * Vce (sat), que es aproximadamente 0,4 A * 0,75 V = 0,3 W, además de que su R-pi necesita al menos un par de mA más o menos para conducirlo.
Un MOSFET de nivel lógico moderno puede ser mucho más pequeño, funcionar (casi) sin corriente) y casi no tener disipación. Aquí hay una pieza de ejemplo, la FDC637BNZ , elegida al azar entre miles en Farnell:

ingrese la descripción de la imagen aquí

0.5A son 500 miliamperios... Reventarás tu Pi. 0,05 es 50 miliamperios. Ese es el límite alto. No hay necesidad de ir por eso. Solo necesitas 1.6mA como dijiste. Así que mejore un poco, digamos un buen par de 5 mA. 3.3 - 1.3 = 2v la resistencia debe caer. 2v / 0.005A (5mA) = 400Ω. Redondee al siguiente tamaño más grande 470Ω, obtiene ~ 4mA en la base.

Dejando de lado ese error matemático, el TIP120 funciona bien para esto, aunque es realmente excesivo para los 400 mA que tomará la tira de LED. Es un par darlington, para multiplicaciones de alta corriente. Un solo transistor BJT común como el PN2222 (1 amperio en un paquete To-92 estándar) sería más que suficiente. O puede dividir la tira en dos o tres y usar algunos 2n3904 (100 ~ 200 mA) y flashear las diferentes secciones de manera diferente (por supuesto, necesitará un número igual de gpio, a menos que desee conducirlos todos desde un solo GPIO que sería trabajo también Los transistores paralelos, cada uno con sus propias resistencias base que conducen secciones más pequeñas de la tira de LED, serían una buena manera de lidiar con transistores más pequeños si no puede obtener los más grandes).

Y su esquema es lo suficientemente bueno para una maqueta. Una tira de LED de un solo color no es un circuito muy complejo para trabajar, por lo que no hay forma de mejorarlo aparte de usar las piezas correctas en lugar de marcadores de posición genéricos.

Gracias por captar eso. Escribí los cálculos. He actualizado la pregunta con la información correcta.
La desventaja de un par Darlington es el V(CE,sat) relativamente alto, que simplemente disipa la potencia en el transistor. Un BJT regular funcionará mucho mejor con ese aspecto. Como dice @Passerby, no necesita una bestia como TIP120 que tiene una calificación de casi 20 veces más de lo que necesita.