Scooter
Cascarrabias crónico
Introducción:
Hace años me vi en la tesitura de tener que usar un teclado matricial pero no poder hacer el típico barrido de ir activando columnas y leer filas o viceversa, solo podía leer.
Afortunadamente se me ocurrió el circuito adjunto.
Los valores son: las 8 resistencias iguales de cualquier valor, del orden de unos K, por ejemplo 4K7
Los transistores todos iguales de pequeña señal, por ejemplo BC547
Funcionamiento:
El circuito en reposo da todas las salidas a 1 ya que los transistores están en corte por lo tanto Vc=Vcc y no hay teclas pulsadas por lo que las líneas de la resistencia de base están abiertas.
Cada vez que pulsamos una tecla en un teclado matricial unimos una fila con una columna, así en el circuito uniríamos uno de los hilos 1~4 con uno de los 3~8.
De este modo el transistor correspondiente se satura (seguro que se satura si Rb=Rc) y obtenemos como salida Vc=0,2V osea "0" lógico y Vb=0,6V También "0" lógico en las líneas que nos indicarían que fila y que columna en las que se ha pulsado la tecla.
Usos:
No está copiado de ningún lado, la idea fue original mía (la necesidad aguza el ingenio) aunque es probable que a alguien mas se le haya ocurrido, pero nunca lo he visto.
Funciona perfectamente, está funcionando en mas de cincuenta circuitos comerciales reales en condiciones "de verdad".
Espero que sea útil para alguien.
Hace años me vi en la tesitura de tener que usar un teclado matricial pero no poder hacer el típico barrido de ir activando columnas y leer filas o viceversa, solo podía leer.
Afortunadamente se me ocurrió el circuito adjunto.
Los valores son: las 8 resistencias iguales de cualquier valor, del orden de unos K, por ejemplo 4K7
Los transistores todos iguales de pequeña señal, por ejemplo BC547
Funcionamiento:
El circuito en reposo da todas las salidas a 1 ya que los transistores están en corte por lo tanto Vc=Vcc y no hay teclas pulsadas por lo que las líneas de la resistencia de base están abiertas.
Cada vez que pulsamos una tecla en un teclado matricial unimos una fila con una columna, así en el circuito uniríamos uno de los hilos 1~4 con uno de los 3~8.
De este modo el transistor correspondiente se satura (seguro que se satura si Rb=Rc) y obtenemos como salida Vc=0,2V osea "0" lógico y Vb=0,6V También "0" lógico en las líneas que nos indicarían que fila y que columna en las que se ha pulsado la tecla.
Usos:
- Uso de teclados matriciales en sistemas sin microprocesador: Luego se pueden emplear codificadores con las filas y columnas para sacar el valor binario o usar las salidas directamente
- En sistemas en los que no dispongamos de entradas y salidas, solo entradas. Por ejemplo si hemos ampliado con un simple registro de desplazamiento.
- Es mas fácil de programar que usar un escaneo y gasta menos "tiempo de máquina" a cambio se gastan unos pocos componentes, en total andará por 1€, ocupan y "hay que soldarlos"
- Es fácilmente ampliable a matrices NxN
No está copiado de ningún lado, la idea fue original mía (la necesidad aguza el ingenio) aunque es probable que a alguien mas se le haya ocurrido, pero nunca lo he visto.
Funciona perfectamente, está funcionando en mas de cincuenta circuitos comerciales reales en condiciones "de verdad".
Espero que sea útil para alguien.