Para un proyecto en el que estoy trabajando, quiero construir una matriz de LED monocolor de 9x9 también con 9 botones para controlar los LED usando el PIC. Hasta ahora me he dado cuenta de que creo que necesitaré registros de desplazamiento para controlar los cátodos y chips de registro de desplazamiento para controlar transistores discretos para los ánodos. También necesitaré registros de desplazamiento para las entradas de los botones. (Corríjame si me equivoco).
Tengo problemas para buscar información relevante en línea (por ejemplo, qué componentes elegir), ¿alguien puede darme algunas ideas para investigar o cualquier consejo relevante sería de gran ayuda? Gracias
Asumiré que desea controlar el ánodo común de la matriz, es decir, una línea de ánodo a la vez.
Ya mencionaste los transistores para los ánodos, y así es, los necesitarás porque tendrás que suministrar corriente para hasta 9 LED a la vez, y eso es demasiado para un circuito integrado lógico como un registro de desplazamiento 74HC595. Serán 9 transistores PNP.
Pero también necesitará transistores para los cátodos; desea controlar hasta 9 salidas bajas simultáneamente, y a 20 mA por LED (un valor típico), eso es demasiado para un 74HC595. Eso es 9 transistores NPN.
Debe controlar 18 líneas, por lo que puede usar tres 74HC595 para eso, donde cambia 18 bits para cada fila de escaneo: 9 bits para seleccionar la línea de ánodo, eso es 1 bit bajo, el resto alto y 9 bits para los cátodos , alto para encendido, bajo para apagado.
La buena noticia es que no necesita un registro de desplazamiento separado para los botones: conecte cada uno de ellos a una línea de ánodo, con los otros pines unidos a una entrada, y conecte una resistencia desplegable en esa entrada.
Ahora, cada vez que escanea una línea de ánodo, puede ver en la entrada si se presiona el botón para esa línea; entrada alta = presionada, entrada baja = liberada.
Si espera que los usuarios presionen dos botones a la vez (¡siempre lo harán!), tendrá que colocar diodos en serie con los botones para evitar que se enciendan otras filas de LED distintas a la seleccionada.
edite su comentario
En su boceto , tiene las resistencias de los LED en las columnas, lo cual está bien si maneja la pantalla una fila a la vez. De lo contrario, la resistencia compartirá la corriente para todos los LED en una fila y el brillo variará con la cantidad de LED que estén encendidos. En mi esquema a continuación, los moví a las filas, de modo que cada LED tenga su propia resistencia.
Los círculos representan los LED. La resistencia bajará la entrada del microcontrolador. Si se presiona uno de los botones, la entrada aumentará cuando se seleccione la columna asociada. Entonces, en cada escaneo de columna, puede verificar el estado de un botón. Los diodos impiden el encendido de LEDs en otras columnas que la activa si se presiona más de un botón simultáneamente.
Daniel
stevenvh
Daniel
Daniel
Daniel
stevenvh
Daniel
Daniel
stevenvh