El ATmega32 , con Vs = 5 V, puede generar y hundir +/- 20 mA por pin, con una pérdida de voltaje de alrededor de 0.7 V .. 0.8 V
ypuedegeneraryhundir4·(20mA)=80mAentotal(porpaquete),einclusoporpuerto,sinproblemas.
Suponiendo que no quiera superar la clasificación de 20 mA por LED, esta sería una forma diferente de hacerlo:
U1= ADG1636 . Tiene dos interruptores SPDT. Cada conexión de interruptor puede transportar 238 mA (máx.), En cualquier dirección, a 25 ºC. Eso es mucho más alto que 4 · (20 mA) = 80 mA. Entonces, U1 actúa como un búfer de alta corriente. El IC cuesta $ 1.83 en 1 kpcs.
Rs = (5-2-0.7 V) / (20 mA) = 115 \ $ \ Omega \ $, 1/4 W. Solo necesitas cuatro de ellos.
Para que sea seguro conectar pares de LED en antiparalelo, como se muestra, debe ser \ $ V_ {F} < | V_ {Rmax} | \ $, y esa condición generalmente se cumple.
Pasos:
1) Ajuste B = 0 (como se muestra en la Fig.). Eso le dará acceso a los diodos D9 a D16. Los diodos D1 a D8 estarán todos apagados.
2) Ajuste A = 0 (como se muestra en la Fig.). Eso le dará acceso a los diodos D10, D12, D14 y D16.
3) Establezca C = A si desea que D10 esté desactivado. Establezca C =! A (! Significa negado) si desea que D10 esté activado.
4) Simultáneamente con 3), haga lo mismo para {D, D12}, {E, D14}, {F, D16}.
5) Establecer A = 1. Eso le dará acceso a los diodos D9, D11, D13 y D15.
6) Repita 3) y 4), pero para {C, D9}, {D, D11}, {E, D13}, {F, D15}.
7) Conjunto B = 1. Eso le dará acceso a los diodos D1 a D8.
8) Repita 2) a 6), pero para los diodos D1 a D8.
9) Repita 1) a 8), para cada nuevo ciclo completo.
Con eso, cada diodo estará encendido con un ciclo de trabajo de 1/4 (lo que es bueno, teniendo en cuenta que tiene 16 diodos). Y sí, puedes mezclar PWM con esta idea, si quieres controlar gradualmente el brillo.
Como dije, esta solución no excede la clasificación de 20 mA por LED, por lo que el brillo máximo que verá será 1/4 del brillo máximo que cada LED puede producir. Si desea más brillo, use LED que produzcan más mcd / mA. Esto mantendrá intacta su larga vida.
Gracias a la alta capacidad de corriente de U1, la cantidad de luz que producirá cada LED no dependerá del número total de LED que estén encendidos.
Y, solo necesitas seis líneas GPIO de tu MCU. Con solo un IC externo, en lugar de decodificadores + buffers o transistores. Esto es más costoso, pero más compacto (si es crítico), y con un cableado ligeramente más sencillo (seis líneas, en lugar de ocho, van a la matriz de LED). Esta es una respuesta más curiosa y académica, en mi opinión.
Añadido para Federico Russo: lo que dice ya se abordó en mi párrafo "Como dije, esta solución [...]". Forzar 80 mA a través de un LED de 20 mA, incluso durante 1/4 del tiempo, no es una buena idea. Su vida se acortará. Y no debido a la excesiva disipación (que es lo mismo), sino debido a la electromigración (que es proporcional a la corriente). Consulte esta referencia De Cree. Extracto:
Pulsación repetitiva
El segundo tipo de condición de sobrecorriente, repetitiva de alta corriente
pulsante, puede o no resultar en una falla catastrófica temprana de la
LED. La pulsación repetitiva de alta corriente puede resultar en una vida más corta
expectativa para el LED en comparación con la vida útil esperada habitual, en el
Orden de decenas o cientos de miles de horas. Un dispositivo particular
sometido a transitorios repetidos a una amplitud un porcentaje superior
Los límites de la hoja de datos pero por debajo del umbral requerido para
La falla de un solo pulso todavía eventualmente fallará. El mecanismo de falla
probablemente se deba a la electromigración ya que hay suficientes iones metálicos
finalmente se alejó de sus posiciones originales de celosía.
Si desea la misma vida y la misma luz para menos corriente, use LED que produzcan más mcd a 20 mA.