¿Un buen circuito para una gran cantidad de entradas de botón pulsador?

5

Estoy planeando construir un "control remoto universal" para niños para que los niños puedan encender y apagar una gran variedad de dispositivos controlados por infrarrojos con una o dos prensas fáciles ...

El control remoto tendrá quizás 20 botones grandes y gruesos que, al presionarlos, enviarán las múltiples señales IR a todos los dispositivos necesarios para, por ejemplo, encender el canal infantil, configurar la Wii, etc.

La mayoría de los botones se colocarán en un patrón de cuadrícula, pero algunos podrían usarse arriba / abajo / izquierda / derecha, ingresar, etc ...

Usaré un Arduino Pro Mini o Uno como uC.

¿Hay alguna forma inteligente de conectar estos botones? ¿Un circuito tipo rejilla? ¿Entradas analógicas con diferentes resistencias entre cada botón? ¿Un IC que facilitará el trabajo?

    
pregunta Brad

3 respuestas

13

Básicamente los listaste todos.

  1. Una matriz de x filas y columnas y. Necesitas x + y pins.

    Matriz http://hackyourmind.org/public/images/keypad12keys_circuit.png

  2. Expansión digital GPIO IC, preferiblemente con interrupción. I2C, SPI, incluso serie están disponibles. Los pines de interrupción le permiten leer en interrupción en lugar de sondeo. Debe tener hardware I2C / SPI / UART o agregar código de software. Este enfoque se usa principalmente si necesita mucho más GPIO del que tiene disponible en el microcontrolador principal. En ese momento, básicamente sigue utilizando las opciones 1, 3 y 4, o el botón directo por pin.

  3. Escalera de resistencia. Necesita un ADC, y un sondeo constante. Es mejor dividirse en algunos grupos similares en múltiples canales de ADC, pero puedes hacer un gran botón de uno si realmente lo necesitas.

  4. Charlieplexing . Como una matriz multiplexada (# 1), pero con \ $ N \ veces (N - 1) \ $ donde \ $ N \ $ es el número de pines utilizados. Requiere tantos diodos como botones, por lo que está cambiando la cantidad de pines para los diodos. Sin embargo, podrías usar LEDs.

En su mayor parte, # 1 es el método más común. Cada teclado o teléfono de tonos que alguna vez usaste, 1000 a 1, lo habría usado. Demonios, incluso los teléfonos celulares lo usan (específicamente, el Nokia 5110 Sé que lo usa). Para 20 botones, una matriz de 4x5 solo tomará 9 pines, más que suficiente.

    
respondido por el Passerby
3

Texas Instruments hace un codificador de teclado i2C . Montaje superficial. No hay nada más simple que eso.

    
respondido por el John R. Strohm
0
  

¿Un IC que facilitará el trabajo?

Definitivamente.

  

El LM8330 I / O - Expander y Keypad Controller es un dispositivo dedicado diseñado para descargar un procesador host de escanear un teclado con dirección de matriz y para proporcionar funciones de entrada / salida programables, flexibles y de propósito general. Se proporcionan tres salidas de temporizador independientes de modulación de ancho de pulso (PWM) para la modulación dinámica del brillo del LED.

     

Se comunica con un procesador host a través de una interfaz serial ACCESS.bus compatible con I 2 C. Puede comunicarse en modo estándar (100 kHz) y en modo rápido (400 kHz) solo en modo esclavo.

Con esto, probablemente pueda salirse con la suya utilizando un ATtinyX5 en lugar de un ATmega.

    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas