Esto es similar a How to drive a 20mA LED from a 4mA max GPIO Pin, excepto que necesito un poco más de control para entender lo que está sucediendo.
Para los antecedentes, soy ingeniero de software y actualmente solo sé lo suficiente sobre electrónica para probar con éxito una batería de 9V con mi lengua.
Tengo una placa Arduino Uno que he manipulado para controlar por separado 3 LED que parpadean en un tipo de configuración de "luces de persecución". He conectado cada pin GPIO directamente a un LED, una resistencia y de vuelta al pin de tierra de +3V de la placa. El software enciende los pines GPIO a intervalos para lograr el efecto deseado.
Con un LED cableado, todo se ve muy bien. Al agregar un segundo LED a cada uno de los 3 circuitos pequeños (para "extender" mi cadena de luces de persecución), los LED se atenúan considerablemente. Mi plan era eventualmente cablear una cadena de 10 LED para cada circuito para un total de 30 LED. Obviamente, si no puedo encender 2 LED, 10 están fuera de discusión.
Así que pensé en usar un transistor para cada circuito con el GPIO simplemente proporcionando el "disparador" para encender el hilo de 10 LED. Conecté algunos LED, una resistencia y el transistor, y lo conecté todo a una batería de 9V. Está oscuro, como era de esperar. Solo hay un pin base en el transistor, por lo que obviamente el pin GPIO debe estar conectado a eso , pero ¿cómo debo completar correctamente el circuito de regreso a la placa Arduino?
Experimenté tomando una batería de 3V y conectando el terminal negativo al pin del emisor del transistor y luego tocando el pin base como disparador y parecía funcionar, pensé que los LED parpadeaban un poco. Eso podría deberse a que mis manos no eran muy estables. ¿Es este el enfoque correcto para trabajar con los pines GPIO de Arduino?
Aquí están todas las especificaciones eléctricas de los componentes que tengo frente a mí, porque las matemáticas importan, por supuesto.
Arduino GPIO: 5V LED: NTE30143 5V 25mA (corriente directa continua) Transistor: 2N4401 600mA
¿Cuál es la forma "adecuada" de usar los pines GPIO de Arduino para encender una cadena de 10 LED? ¿Se puede hacer con los componentes anteriores, o realmente debería hacerse con un circuito más complejo?
Estoy construyendo esto como un prototipo para que algunos estudiantes de primaria lo construyan ellos mismos, y prefiero hacer el circuito lo más simple posible.
(Puntos de bonificación por explicar dónde deben ir las resistencias, cuáles deben ser sus valores y por qué deben estar allí en primer lugar :)
ACTUALIZAR
Olvidé mencionar que quiero cablear cada cadena de 10 LED en serie, no en paralelo, quiero minimizar la cantidad de cable requerido. Estos LED terminarán separados entre 4 y 5 pulgadas y la cadena completa de 30 LED formará un gran bucle, por lo que no quiero encadenar cada LED individualmente. Me gustaría tener 3 bucles grandes de 10 LED cada uno con todos los controles en un solo lugar.
ACTUALIZAR
Un último requisito (creo): esto tiene que quedarse sin pilas. Sin alimentación de red. :)
Tienes un GPIO débil. Quiere 250 mA y quiere (créame en esto) saturar su transistor de salida. Un 2N4401 necesita una relación de corriente base a corriente de colector de 1:10 en saturación. Entonces necesita 25 mA en la base de su transistor de salida. Esto es más que sus débiles suministros GPIO. Entonces necesitas otro transistor.
Q1 es un seguidor de emisor. El voltaje del emisor será de 0 V cuando el pin GPIO esté bajo y de 0,7 V por debajo del voltaje del pin GPIO cuando el pin esté alto. Suponiendo que el voltaje de suministro al microprocesador es de 5 V, la base de Q1 será de 4,3 V cuando el pin GPIO esté alto. La base de Q2 estará en aproximadamente 0,7 V cuando Q2 esté encendido. Esto deja 3,6 V para generar corriente a través de R1.
Necesita 30 mA en R1 (eso es 25 mA redondeado). (3,6 V)/(30 mA) = 120 (Tenga en cuenta que las unidades funcionan, es bueno cuando eso sucede). Siempre que su Arduino sea una unidad de 5V, está bien. Cambiar R1 a 47 si es de 3.3V.
A los LED no les gusta ser alimentados por una fuente de voltaje: debe comenzar con el voltaje que está suministrando y averiguar cómo darles la corriente especificada. Sus LED caen alrededor de 3.5V (verifique eso, voy de memoria y soy perezoso). Suponiendo que está manejando esta cadena desde una fuente de 9V, puede ejecutar pares en serie con una resistencia de límite de corriente; ese es el R2 que estoy mostrando en el diagrama.
Si usted tiene LED en una cadena (dos si es de 9 V, uno si es de 5 V), luego
Tenga en cuenta que probablemente no desee obtener sus 9V de una batería de "9V". Una batería de "9V" es de 9V, completamente cargada con una carga ligera, y no desea extraer más de unos 50 mA de ella. Si va a extraer 250 mA (o incluso 125 mA), entonces debe diseñar su circuito para que siga funcionando a alrededor de 6 V , lo que significa solo un LED por sección, lo que significa el doble de corriente, no puede ganar por perder, etc. .
Entonces, use una verruga de pared de 9V y sea feliz.
simular este circuito : esquema creado con CircuitLab
simular este circuito : esquema creado con CircuitLab
Las resistencias R1 a R10 son resistencias limitadoras de corriente, para cada LED de la hoja de datos, la corriente directa es de 20 mA a 3,1 V de voltaje directo. de esta fórmula
donde Vs es el voltaje de la fuente, Vf es el voltaje directo del led e i es la corriente. obtenemos R casi igual a 100 (valor estándar más cercano). en el circuito de led en paralelo, debe agregar una resistencia separada para cada rama de led, ya que, aunque tienen las mismas especificaciones, sus voltajes directos son una ligera diferencia y dan como resultado que algunos led se enciendan brillantes y otros apagados. incluso algunas veces se quemarán . entonces la mejor práctica es agregar una resistencia individual en cada rama (para led individual)
con respecto a los cálculos de la base del transistor
número total de leds: 10 consumo de cada led: 20mA
entonces la corriente total es: 20*10 = 200mA es la corriente del colector.
el factor de ganancia actual de 2N4401 es 40 @ 500mA (ya que aunque es 100 @ 150mA, pero cruzamos el límite, considérelo como 40)
Ic = hfe * Ib (corriente de colector = ganancia * corriente base)
entonces Ib = 200/40 = 5mA (esta es la corriente base mínima requerida para obtener 200mA de corriente de colector).
NOTA: Arduino GPIO puede entregar hasta 40mA. entonces puede optar por esto. Si desea controlar esto incluso con menos corriente base (según su pregunta con 4 mA, necesita un transistor adicional en la configuración de par darlington)
ahora la base se maneja a través de arduino GPIO (5V) el voltaje efectivo a través de la resistencia es = 5V - Vbe (voltaje del emisor base) = 5V - 0.7V = 4.25V
Entonces Ib = resistencia base V / resistencia => resistencia = resistencia base V / Ib => 4.25/0.005 => 850 ohm, por lo que el valor más cercano con algún factor de margen será 750 ohm / 820 ohm
Este es el método simple de contador de Johnson que usa 10 Cd ~ 20 Cd 5 mm 5000k LED usando solo 5 mA por LED, que es realmente brillante con estos.
Con 30 resistencias más, puede desvanecer el LED principal y posterior a la mitad de la intensidad
Un efecto más suave utiliza resistencias y transistores como este.
La resistencia de 50 ohmios controla el brillo y la corriente promedio y se puede emparejar a 25 ohmios.
Enfoque de seguidor de emisor de transistores
Asumiendo 5V GPIO
simular este circuito : esquema creado con CircuitLab
Si asumí mal y es un 3.3GPIO, entonces se necesita otro diseño. ACTUALIZAR aha 3V argh ..
Así que ahora necesitamos un interruptor HEX de drenaje abierto inversor de bajo voltaje en el chip DIP. http://www.ti.com/lit/ds/symlink/cd74ac05.pdf
Con Vcc=3V a 5V la resistencia del interruptor < 20 Ohms. que invierte todas las entradas y los LED en ÁNODO común a 5,0 V sin una resistencia compartida de 50 ohmios que ahora usa la resistencia de drenaje abierto.
se necesitan más cálculos.
david tweed
KH
cristobal schultz
KH
KH
Tony Estuardo EE75