¿Cómo puedo reutilizar este juego de botones de una vieja caja de TV por cable Sky?

Soy bastante inexperto con la electrónica en general, por lo que podría haber imprecisiones en esto.

Tomé la placa de circuito de una vieja caja de cielo (cable/satélite) que tenía algunos botones. Tiene un cable plano de 8 pines conectado y 9 botones. Los únicos otros componentes en el tablero son 3 diodos.

Es un diseño bastante simple, así que pude usar mi multímetro y resolver este diagrama.

ingrese la descripción de la imagen aquí

Ahora, estaba planeando conectar esto a un microcontrolador, un pi pico para ser específico. Sin embargo, no puedo averiguar cómo puedo leer qué botón se ha presionado. (aparte de IO7 y IO8)

Estaba pensando que podría suministrar 3.3v en cada una de las entradas de diodo, pero si lo hago, varios botones pueden activar la misma salida IO.

Mi siguiente pensamiento fue que podría suministrar cada uno de los diodos de entrada uno a la vez, escaneando las salidas antes de pasar a la siguiente entrada. Me imagino que puedo hacer esto en el controlador, pero no estaba seguro de si esa es la mejor manera de hacerlo.

¿Es este un tipo común de configuración de botones? Estoy feliz de buscar un poco más en Google si alguien me puede dar las palabras clave correctas.

Se llama multiplexación (botón). Vuelva a dibujar el esquema con los botones reorganizados en el diseño de matriz típico que encontrará si busca en Google ese término y tendrá sentido.

Respuestas (3)

Esa es una matriz de botones que se lee de forma multiplexada. Disposición muy común, casi todo lo que tiene muchos botones, como el teclado de su PC o el control remoto del televisor, tiene una matriz similar.

El procedimiento general es que los botones están dispuestos para conectar ciertas "filas" y "columnas" de la matriz cuando se presionan. Una sola fila o columna se activa a la vez para la lectura, por lo que en base a que hay tres diodos, hay tres filas o tres columnas dependiendo de cómo lea la matriz, y por lo tanto es posible un tercio de los botones en un tiempo, ya sea que estén presionados o no.

Sería mucho más fácil de entender si reorganiza el esquema de esta manera:

esquemático

simular este circuito : esquema creado con CircuitLab

Ahora puede ver que al aplicar voltaje a IO1 puede leer el estado de los botones S6, S7 y S8 en los cables IO4, IO6 e IO5 respectivamente. Lo mismo ocurre con otros cables, excepto que solo hay 2 botones para leer en lugar de 3 cuando IO3 está activo.

Tenga en cuenta que este es un esquema un tanto de mala calidad, porque es posible obtener un resultado incorrecto si se presionan varios botones simultáneamente. La matriz de diodos correctamente dispuesta permite una lectura inequívoca de tantos botones presionados simultáneamente como sea posible.

También tenga en cuenta que puede puentear IO7, IO8 a D2, IO6. De esta manera podrá leer los 9 botones con los mismos 6 cables.

Lo siento, una pregunta secundaria que tengo que verificar mi intuición de los circuitos: el diodo D1 tiene IO1 en su ánodo y S7, S8 y S6 en su cátodo. Si S7, S8 y S6 están abiertos, ¿cómo se puede garantizar cuál es el estado del diodo? Debería estar determinado por cualquier capacitancia parásita o parásita que se acople al nodo del cátodo D1, ¿verdad (y IO1, por supuesto)? Probablemente no importe en este caso, pero si lo hiciera, ¿tendría sentido agregar un pull-up o pull-down en ese cátodo D1?
Cuando los botones están abiertos, el estado del diodo no importa. Sin embargo, agregar resistencias desplegables en IO4-IO6 tiene mucho sentido, tal como sugirió @timwescott en su respuesta
¡Gracias, solo estaba comprobando si mi proceso de pensamiento era correcto!
¿Puede dar un ejemplo de lo que quiere decir en su párrafo que comienza "Tenga en cuenta que esto es algo de mala calidad"? No puedo imaginar lo que quieres decir
@OmarL Si se presionan S7, S9 y S6, por ejemplo, es imposible saber si también se presiona S2 o no. Esto sería un problema para un teclado de computadora o piano, donde se deben distinguir varias teclas; No creo que sea un gran problema para un teclado de control remoto típico.
@nekomatic e incluso la mayoría de los teclados de computadora no soportan un número ilimitado de pulsaciones simultáneas de teclas (reinversión de tecla n). Los modelos convencionales generalmente superan el rollover de 4 o 5 teclas, posiblemente con un manejo especial para las teclas modificadoras además de eso.
Gracias @Maple, esto es útil. Pude resolverlo una vez que descubrí que era una matriz y que, de hecho, estaba destinado a alimentar cada línea individualmente. Ahora tengo los botones conectados y trabajando con mi microcontrolador.
Esta imagen sería más clara si cambias la posición de S7 y S6.
Dado que S1 está en su propio circuito, probablemente esté destinado a ser un botón modificador, presionado en combinación con cualquier otro botón.
@BrtH Tienes razón. hecho.

Conecte IO4, 5 y 6 a través de resistencias a tierra. Mantenga solo uno de IO1, 2 o 3 alto y lea IO4, 5 y 6.

Si observa su esquema, debería ver cómo, para todas las combinaciones posibles de pulsaciones de botones, puede escanear a través de IO1, 2 y 3, y leer el estado del teclado.