Teclado matricial sin escaneo

#1
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:
  • 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.
 

Adjuntos

#2
hola, no tuviste al necesidad de ponerle a las bases de los T. una resistencia a masa ????? , aunque sera de 10 veces el valor de las otras R.
para que no quede esas bases ahi flotando a la bartola.
no es que sea yo un castrador de libertades de transistores, pero eso de dejar bases asi desnuditas........despues terminan todos los componentes haciendo lo que se les da la gana, un libertinaje total.
tantos años uno educandolos :)
 

el-rey-julien

Well-known-Perejil Trans
#3
Introducción:

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.
así es ya habia visto en el foro tu idea ,gracias por compartirla
saludos
 
#4
La verdad es que nunca pongo la famosa resistencia a masa y nunca me ha dado ningún problema, ni en este ni en ningún caso, al menos en trabajando en conmutación. Claro que tampoco estaría mal ponerla.
El circuito ha funcionado "de verdad"; equipos de regulación de tráfico en la vía pública con todo lo que ello implica y no han dado ningún problema en años.

En ese sentido soy un diseñador de circuitos parcos en componentes; todos los que he hecho llevan la mitad de cosas de lo normal y cuanto mas se repitan los valores mejor; menos líos de logística.
 
Última edición:
#5
Perdon mi ignorancia he intentado activarlo lo que entiendo es que las entradas de la 1 a la 4 son por asi decirlo las columnas y las entradas de 5-8 son las filas pero como conectas los 16 botones de manera q apachando uno no se activen los 8 pines que normalmente esta cortocircuitados
 
#8
No veo relación de ese artículo con esto. Ese teclado si que va escaneado, lo que hace es regenerar el escaneo que falta por "secuencia y ausencia del resto de escaneos"
Lo que yo propongo NO ESCANEA, tiene pegas; no se pueden detectar pulsaciones simultáneas ya que podría dar lecturas erróneas y gasta transistores y resistencias. Tiene ventajas; no escanea y da el resultado en una sola lectura sin mas.
 
Última edición:
#9
Yo como suelo usar microcontroladores con pocos puertos (y por lo tanto muy baratos) cuando tengo que implementar un conjunto de pulsadores lo hago así:

Teclado Lineal.png

El circuito funciona muy simple a través de temporización. El micro carga por el puerto de salida el condensador con un 1. Acto seguido cambia el puerto a entrada y temporiza hasta encontrar un 0 (se puede hacer por interrupción y evitas el polling). Depende del número de resistencias que descargaran el condensador se habrá pulsado un botón u otro. Además tiene la ventaja de que con los valores adecuados, el circuito es bastante inmune a los rebotes, y que si se pulsan varios a la vez, sólo se reconoce el que más hacia la derecha esté (que es el que descarga el condensador).

Es importante que la entrada del micro sea un trigger schmitt o un comparador analógico, de lo contrario no se sabe que puede pasar si se mantienen niveles intermedios de voltaje ni cuando será la transición a 0...

Con pequeños cambios y 2 lineas se puede implementar la versión matricial, pero para pocos botones (pongamos hasta 10 o 12), no vale la pena gastar 2 lineas, las resistencias son baratas.



Por cierto, para C1 nunca usar un condensador cerámico. Son muy inestables a la temperatura y a menos que se hiciera una temporización adaptativa, se tendrían pulsaciones fantasma. Mucho mejor uno de poliester.
 
Última edición:
#10
Yo como suelo usar microcontroladores con pocos puertos (y por lo tanto muy baratos) cuando tengo que implementar un conjunto de pulsadores lo hago así:

Ver el archivo adjunto 96758

El circuito funciona muy simple a través de temporización. El micro carga por el puerto de salida el condensador con un 1. Acto seguido cambia el puerto a entrada y temporiza hasta encontrar un 0 (se puede hacer por interrupción y evitas el polling). Depende del número de resistencias que descargaran el condensador se habrá pulsado un botón u otro. Además tiene la ventaja de que con los valores adecuados, el circuito es bastante inmune a los rebotes, y que si se pulsan varios a la vez, sólo se reconoce el que más hacia la derecha esté (que es el que descarga el condensador).

Es importante que la entrada del micro sea un trigger schmitt o un comparador analógico, de lo contrario no se sabe que puede pasar si se mantienen niveles intermedios de voltaje ni cuando será la transición a 0...

Con pequeños cambios y 2 lineas se puede implementar la versión matricial, pero para pocos botones (pongamos hasta 10 o 12), no vale la pena gastar 2 lineas, las resistencias son baratas.



Por cierto, para C1 nunca usar un condensador cerámico. Son muy inestables a la temperatura y a menos que se hiciera una temporización adaptativa, se tendrían pulsaciones fantasma. Mucho mejor uno de poliester.

Palurdo, ¡esta muy bueno!, lo programas en asembler? usas Proteus? vos podrás pasar una simulación simple en Proteus de algún micro que uses, yo por ejemplo, tengo algunos ejemplos con el pic16f628, que esta muy bueno y es de pocas patas.

Escuchame, necesitaría el ejemplo en el Proteus, con el archivo fuente de la programación obvio, de última mandame un privado y te pago tipo clase particular, te hago una transferencia.

Me sirve tanto en C como en Asembler.
 
#11
Me dijeron, a modo de ajercicio con el teclado matricial, que se puede hacer algo con diodos, como para que cada tecla tenga una salida directa. Yo porque le estoy enseñando lo poco que sé de electrónica a mi sobrino y quería hacerle una prueba, con un entrenador, para que cada tecla accione el encendido de un led del entrenador. Sería para que le agarre el gustito a la electrónica, imaginense que si le doy microcontrolador de una ... mi sobrino se frustraría y se dedicaría a ser costurero.
 
#12
ANDRESPI

La verdad es que no tengo mucho tiempo últimamente y tengo varios problemas que resolver, pero no quiere decir que no te ayude. Te paso por privado un proyecto exitoso que hice que si no es exáctamente lo que buscas, el principio de funcionamiento es el mismo, y el sistema funciona perfectamente.

Antes de leerte ese proyecto, echale un vistazo a esta documentacion sobre PICs de pocos puertos, que me sirvió muchísimo para dicho proyecto.

Saludos.
 
#13
Ok palurdo, en cuanto tenga una hora libre lo leo detenidamente. Gracias, y si sabes de alguien que de clases particulares de microcontroladores y electrónica me avisas. Yo soy de zona oeste, preferentemente que no me quede tan a tras mano, o tan a tras tráfico, hay lugares que son imposilbes de llegar a ciertas horas.
 
#14
Yo como suelo usar microcontroladores con pocos puertos (y por lo tanto muy baratos) .
alguna vez que eche un vistazo a lista de precios vi que algun modelo de 18 pines termina costando casi lo mismo que uno de 8 .
es segun lo que mas se vende = mas trae el importador = mas abarata costo .

o no ??
 
#15
La verdad es que los 80 centavos es un precio casi imbatible para el 16f628a. A diferencia del 16f84, que aunque se sigue usando ya hace tiempo que es obsoleto el 628 pasara en el terreno de los mcu como los 555 por su relacion calidad/precio.

De todas formas los de la serie 10F2XX cuestan sobre 30 centavos (6 patillas) y aunque son simples algunos tienen comparadores timers y watchdogs o incluso ADCs.

Y lo que mas me gusta, tienes dos encapsulados, dip-8 para primer prototipado, y SOT23-6 para prototipo en pcb y preseries.
 
#17
Directamente a Microchip aunque los tienes que pedir en grandes cantidades. Los precios los utilizo para el estudio de mercado del proyecto, luego ya el cliente es el que se apaña comprándolos en función a la cantidad de producción.

Los que yo uso para los prototipos son muestras que muy de vez en cuando pido a Microchip.

De todas formas los 16F628 los compro en cualqueir sitio, pero los más baratos, a 0.80 (ahora están a 1.03$) en ebay por paquetes de 5.
 
#18
Uyy lo estaba por comprar, pero veo que es de smd, busqué los comunes, y ya estamos hablando de euros para el 628. Si ves el mismo precio por los que no son smd me avisan. Gracias.



Y lo que mas me gusta, tienes dos encapsulados, dip-8 para primer prototipado, y SOT23-6 para prototipo en pcb y preseries.

2 patitas menos la serie SMD? de donde viene ese ahorro de patas?
 
Última edición:
#19
Última edición:
Arriba