Estoy buscando hacer 16 (columnas) x 14 (filas) matriz de LED . Los cátodos están conectados a las columnas y los ánodos están conectados a las filas.
Quiero conducir filas (ánodos) con el expansor de entrada de E / S MCP23017 que es el controlador a través de I2C. No estoy usando el registro de desplazamiento porque necesito pines GPIO del microcontrolador para otros propósitos. MCP23017 tiene 16 pines IO, que 14 usaría como salidas para matriz LED.
Después de MCP conectaría el controlador fuente TLC59213 (LED). Lo interesante de TLC59213 es que está conectado a un flip-flop D que requiere señal de reloj ascendente para actualizar las señales. No estoy seguro de cómo abordaría esto. Necesito actualizaciones constantes ya que esta es la matriz de LED. ¿Debería escribir una función pequeña en el código que crearía un pulso pequeño y conectaría un pin IO al pin del reloj TLC59213? Entonces llama a esa función todo el tiempo. ¿O debería crear un circuito pequeño (tal vez con 555 o similar) que haga pulsos constantemente y lo conecte al pin del reloj? ¿Cuál de esos es el mejor (lo mejor aquí significa que la actualización es rápida y no se nota solo con mirarla)? ¿Hay una tercera opción, mejor,?
En el lado de las columnas (cátodos), quiero colocar el controlador del fregadero ULN2003 justo al principio de la columna. Finalmente, hay un controlador de receptor PWM LED TLC5940 . Estoy poniendo ULN2003 porque TLC solo puede hundir 120 mA. Teniendo en cuenta que todos los LED de una columna podrían estar encendidos en cierto momento (16 x 15mA = 240mA), agregué ULN2003.
Aquí tengo problemas para entender si necesito ULN2003 o no. ¿Es posible que el TLC5940 sea capaz de hundir pequeñas ráfagas de corriente para que no le haga daño?
Además, el sistema funciona con 5V, mientras que el voltaje del LED es de 3.3V. Si todos los 16 LED se encendieran, necesitaría 240mA. Según la ley de Ohm: R = U / I = (5 - 3.3) / 0.24 = 7ohm. Entonces, la resistencia de 7 ohmios caerá 1.7V cuando la corriente sea de 240mA. Pero cuando solo se enciende un LED, la resistencia cae solo U = I * R = 0.02 * 7 = 0.14V, por lo que el LED debe caer 4.86V. ¡No es tan bueno! ¿Cómo debo abordar esto ya que la corriente se puede cambiar constantemente?
EDIT:
Después de recibir una respuesta y analizar otra vez, elijo reemplazar TLC59213 con solo el regulador PMOS y ULN2003 con NMOS. Más sencillo, amplio disponible, incluso más barato. El problema de la resistencia permanece inmóvil.